Gre*_*egW 11 javascript arrays
我在Javascript中有两个目前看起来像这样的数组,但是由HTTP请求(节点)更新:
var x = [[292,"2349","902103","9"],[3289,"93829","092","920238"]]
var y = [[292,"2349","902103","9"],[322,"93829","092","920238"],[924,"9320","8932","4329"]]
Run Code Online (Sandbox Code Playgroud)
我想比较这些数组,这样,如果y内部的数组不在x中,它将被保存到一个新数组 - z.请注意,有时数组内部数组的顺序会发生变化,但我不希望这会影响结果.
但是,如果x内部的数组不在y中,则不应保存到z.
我读了JavaScript数组差异,并且能够复制它,但是如果x数组没有显示y,则打印到z.我想知道是否有可能不存储,只有不同的项目y?
使用接受数组的高阶函数(随每次迭代而变化y)并返回一个对每个元素(嵌套数组)进行操作的新函数some.true如果数组包含相同的元素而不管顺序,它将返回.
function matches(outer) {
return function (el) {
if (outer.length !== el.length) return false;
return el.every(function (x) {
return outer.indexOf(x) > -1;
});
}
}
Run Code Online (Sandbox Code Playgroud)
迭代y并返回不在的数组列表x.
function finder(x, y) {
return y.filter(function (el) {
return !x.some(matches(el));
});
}
finder(x, y);
Run Code Online (Sandbox Code Playgroud)