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 x

var 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

回到顶部