JavaScript in_array 函式

  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 物件值以獲得我們更喜歡的輸出。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
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 Facebook

相關文章 - JavaScript Array