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中文网其他相关文章!