该功能如何适应比较2d阵列?

时间:2013-07-24 10:28:39

标签: javascript

下面的功能如何适应搜索二维数组?我无法弄清楚。我需要以下示例来生成'[“sainsburys”]'。

由于

Array.prototype.diff = function(a) {
    return this.filter(function(i) {return !(a[0].indexOf(i[0]) > -1);});
};

var oldSupermarkets = [["asda"], ["tesco"], ["sainsburys"]];
var newSupermarkets = [["asda"], ["tesco"]];

1 个答案:

答案 0 :(得分:1)

这样做你想要的:

Array.prototype.diff = function(a) {
    var b = a.map(function(x) { return x[0]; });
    return this.filter(function(x) { return b.indexOf(x[0]) == -1; });
};

如果您告诉我们这些二维数组所代表的内容,我可以给您一个更准确的答案 - 如果内部数组有多个项目,它会是什么意思。目前它们看起来不必要,您只需将它们展平并使用一维diff函数。