Javascript算法查找数组中不在另一个数组中的元素
我正在寻找一种好的算法来获取一个数组中的所有元素,而不是另一个数组中的元素。所以给定这些数组:
var x = ["a","b","c","t"];var y = ["d","a","t","e","g"];
我想结束此数组:
var z = ["d","e","g"];
我正在使用jquery,因此可以利用$.each()
and的优势$.inArray()
。这是我想出的解决方案,但似乎应该有一个更好的方法。
// goal is to get rid of values in y if they exist in xvar x = ["a","b","c","t"];
var y = ["d","a","t","e","g"];
var z = [];
$.each(y, function(idx, value){
if ($.inArray(value,x) == -1) {
z.push(value);
}
});
alert(z); // should be ["d","e","g"]
这是运行中的代码。有任何想法吗?
回答:
var z = $.grep(y, function(el){return $.inArray(el, x) == -1});
同样,该方法名称也太短了。我希望它的意思是isElementInArray,而不是indexOf。
有关对象的演示,请参见http://jsfiddle.net/xBDz3/6/
以上是 Javascript算法查找数组中不在另一个数组中的元素 的全部内容, 来源链接: utcz.com/qa/434846.html