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));
輸出:
%60-Method-to-Search-an-Element-from-an-Array.webp)
此方法以布林值返回結果,因此我們的輸出將被控制檯輸出為 true 或 false。
使用 for 迴圈檢查元素是否存在
在此示例中,我們將建立一個陣列和一個變數來儲存要搜尋的元素。我們將建立一個簡單的 for 迴圈來檢查我們的元素並以 true 或 false 返回結果。
程式碼片段:
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);
輸出:

使用函式從物件中檢查物件
JavaScript 有兩種資料型別,primitive 和 objects。primitive 資料遵循 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] 相同。你還會發現資料型別對於兩者來說都是物件,但 a 和 b 都持有不同的引用,而且我們知道,物件支援按引用傳遞。
我們不能通過選擇傳遞參考。我們在這裡所做的是,在我們的 inArray 函式中,我們已經確定 b 物件中是否有任何物件型別資料。
如果結果為真,我們使用 Compare 函式,我們明確檢查 b[i] 物件值和 a 物件值以獲得我們更喜歡的輸出。
