JavaScript中是否有一种方法可以比较一个数组中的值,并查看它是否在另一个数组中?
类似于PHP的in_array函数?
JavaScript中是否有一种方法可以比较一个数组中的值,并查看它是否在另一个数组中?
类似于PHP的in_array函数?
当前回答
将此代码添加到项目中,并使用对象样式的inArray方法
if (!Array.prototype.inArray) {
Array.prototype.inArray = function(element) {
return this.indexOf(element) > -1;
};
}
//How it work
var array = ["one", "two", "three"];
//Return true
array.inArray("one");
其他回答
PHP:
if (in_array('a', ['a', 'b', 'c'])) {
// do something if true
}
我在JS中的解决方案:
if (['a', 'b', 'c'].includes('a')) {
// do something if true
}
有一个叫Locutus的项目,它在Javascript和in_array()中实现了PHP函数,你可以像在PHP中使用一样使用它。
用法示例:
in_array('van', myArray);
in_array(1, otherArray, true); // Forcing strict type
如果你打算在一个类中使用它,如果你希望它是功能性的(并且在所有浏览器中工作):
inArray: function(needle, haystack)
{
var result = false;
for (var i in haystack) {
if (haystack[i] === needle) {
result = true;
break;
}
}
return result;
}
希望它能帮助到一些人:-)
haystack.find(value => value == needle)
其中haystack是一个数组,needle是数组中的一个元素。如果元素未找到,则返回未定义,否则返回相同的元素。
你可以简单地使用“includes”函数,就像w3schools这节课中解释的那样
它看起来像
let myArray = ['Kevin', 'Bob', 'Stuart']; 如果(myArray.includes(凯文)) console.log('Kevin is here');