首页  >  文章  >  后端开发  >  JavaScript 中是否存在与 PHP 的 in_array() 等效的函数?

JavaScript 中是否存在与 PHP 的 in_array() 等效的函数?

Susan Sarandon
Susan Sarandon原创
2024-11-13 06:16:02396浏览

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