首頁  >  文章  >  後端開發  >  JavaScript 中是否存在與 PHP 的 in_array() 等效的函數?

JavaScript 中是否存在與 PHP 的 in_array() 等效的函數?

Susan Sarandon
Susan Sarandon原創
2024-11-13 06:16:02397瀏覽

Is There a JavaScript Equivalent of PHP's in_array()?

JavaScript 可以模仿 PHP 的 in_array() 功能嗎?

在 PHP 中,in_array() 將值與數組中的值進行比較,傳回 true如果找到匹配項。 JavaScript 缺乏直接的等效項,但社群開發的函式庫提供了類似的功能。

使用jQuery 或Prototype 進行實例匹配

jQuery 的inArray 和Prototype 的Array.indexOf 透過以下方式解決了這個挑戰:迭代比較值:

// jQuery implementation:
function inArray(needle, haystack) {
  for (var i = 0; i < haystack.length; i++) {
    if (haystack[i] == needle) return true;
  }
  return false;
}

數組比較

對於更複雜的場景,需要比較整個數組,自訂函數可以滿足此需求:

function arrayCompare(a1, a2) {
  if (a1.length != a2.length) return false;
  for (var i = 0; i < a1.length; i++) {
    if (a1[i] !== a2[i]) return false;
  }
  return true;
}

function inArray(needle, haystack) {
  for (var i = 0; i < haystack.length; i++) {
    if (typeof haystack[i] == 'object') {
      if (arrayCompare(haystack[i], needle)) return true;
    } else {
      if (haystack[i] == needle) return true;
    }
  }
  return false;
}

用法

// Test the custom function:
var a = [['p', 'h'], ['p', 'r'], 'o'];
if (inArray(['p', 'h'], a)) {
  console.log('ph was found');
}
if (inArray(['f', 'i'], a)) {
  console.log('fi was found');
}
if (inArray('o', a)) {
  console.log('o was found');
}

以上是JavaScript 中是否存在與 PHP 的 in_array() 等效的函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn