JavaScript in_array 函式

Anika Tabassum Era 2023年1月30日 2022年5月10日
  1. 使用 includes() 方法從陣列中搜尋元素
  2. 使用 for 迴圈檢查元素是否存在
  3. 使用函式從物件中檢查物件
JavaScript in_array 函式

在 JavaScript 中,如果我們希望遍歷從陣列中找到某個字串或數字,我們將不得不使用 includes() 方法。在引入這個約定之前,我們通常通過在陣列索引上啟動一個 for 迴圈來完成搜尋任務。

因為按值傳遞按引用傳遞之間存在差異,includes() 方法並沒有給我們正確的答案。

我們將學習 includes() 方法的使用,我們將嘗試手動建立 includes() 方法功能,並瞭解如何建立該函式以防我們在本文中對物件進行檢查。

使用 includes() 方法從陣列中搜尋元素

includes() 方法通常在開頭使用陣列名稱(我們將在其中搜尋元素),然後是 dot(.)。在下一部分中,我們將提到我們的元素。

程式碼片段:

var name = ['Rayan', 'Emily', 'Sarah'];
var check = 'Rayan';
console.log(name.includes(check));

輸出:

使用 includes() 方法從陣列中搜尋元素

此方法以布林值返回結果,因此我們的輸出將被控制檯輸出為 truefalse

使用 for 迴圈檢查元素是否存在

在此示例中,我們將建立一個陣列和一個變數來儲存要搜尋的元素。我們將建立一個簡單的 for 迴圈來檢查我們的元素並以 truefalse 返回結果。

程式碼片段:

var a = 2;
var b = [1,2,3];
var verdict;
for(var i=0;i<b.length;i++){
  if(b[i]===a){
    verdict = true;
    break;
  }
  else{
    verdict = false;
  }
}
console.log(verdict);

輸出:

使用 for 迴圈檢查元素是否存在

使用函式從物件中檢查物件

JavaScript 有兩種資料型別,primitiveobjectsprimitive 資料遵循 pass by value,所以我們更容易執行上面的任務,但在 objects 的情況下,傳遞引用用於比較任何內容。

如果我們遵循一般的檢查方式或 includes() 方法,我們將無法得出完美的答案。

程式碼片段:

function Compare(b, a) {
    if (b.length != a.length) return false;
    var length = a.length;
    for (var i = 0; i < length; i++) {
        if (b[i] !== a[i]) return false;
    }
    return true;
}
function inArray(a, b) {
    var length = b.length;
    for(var i = 0; i < length; i++) {
        if(typeof b[i] == 'object') {
            if(Compare(b[i], a)) return true;
        } else {
            if(b[i] == a) return true;
        }
    }
    return false;
}
var a = [1,2];
var b = [[1,2],3,4];
console.log(inArray(a,b));

輸出:

使用函式從物件中檢查物件

如果你排除特定的 b[i]a,則值將與 [1,2] 相同。你還會發現資料型別對於兩者來說都是物件,但 ab 都持有不同的引用,而且我們知道,物件支援按引用傳遞

我們不能通過選擇傳遞參考。我們在這裡所做的是,在我們的 inArray 函式中,我們已經確定 b 物件中是否有任何物件型別資料。

如果結果為真,我們使用 Compare 函式,我們明確檢查 b[i] 物件值和 a 物件值以獲得我們更喜歡的輸出。

Anika Tabassum Era avatar Anika Tabassum Era avatar

Era is an observer who loves cracking the ambiguos barriers. An AI enthusiast to help others with the drive and develop a stronger community.

LinkedIn GitHub Facebook

相關文章 - JavaScript Array