JavaScript中是否有一种方法可以比较一个数组中的值,并查看它是否在另一个数组中?
类似于PHP的in_array函数?
JavaScript中是否有一种方法可以比较一个数组中的值,并查看它是否在另一个数组中?
类似于PHP的in_array函数?
当前回答
jQuery解决方案是可用的,检查文档在这里: http://api.jquery.com/jquery.inarray/
$.inArray( 10, [ 8, 9, 10, 11 ] );
其他回答
我在SO上找到了一个很棒的jQuery解决方案。
var success = $.grep(array_a, function(v,i) {
return $.inArray(v, array_b) !== -1;
}).length === array_a.length;
我希望有人能发布一个例子,如何在下划线做到这一点。
haystack.find(value => value == needle)
其中haystack是一个数组,needle是数组中的一个元素。如果元素未找到,则返回未定义,否则返回相同的元素。
function in_array(needle, haystack){
return haystack.indexOf(needle) !== -1;
}
var value = 'a';
var array = ['a', 'b', 'c'];
if(array.indexOf(value)){
// exists in array
} else {
// Not exists in array
}
数组中。indexOf是在JavaScript 1.6中引入的,但旧的浏览器不支持它。值得庆幸的是,Mozilla的伙计们已经为你做了所有艰苦的工作,并为你提供了以下兼容性:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
甚至还有一些方便的使用代码片段供您编写脚本。