我正在寻找一种好的算法来获取一个数组中的所有元素,而不是另一个数组中的元素。所以给定这些数组:
var x = ["a","b","c","t"]; var y = ["d","a","t","e","g"];
我想结束此数组:
var z = ["d","e","g"];
我正在使用jquery,因此可以利用$.each()and的优势$.inArray()。这是我想出的解决方案,但似乎应该有一个更好的方法。
$.each()
$.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/