我有一个数组,每次用户单击一个按钮时,该数组就会填充信息。被推到该阵列的信息在阵列本身内。所以类似的东西:
var parentArray = [];
var childArray = ["Info1", "Info2", 500];
$("#button").on("click", function(){
parentArray.push(childArray);
})
每次用户单击按钮时,
childArray
将基于不同的用户输入而具有不同的信息。例如,用户单击地图上的一个点,childArray
将某些信息纳入其中。用户单击地图上的其他点,childArray
将某些信息纳入其中。每次childArray
将不同或相同。然后,用户单击按钮,将childArray
中的信息推送到parentArray
。我的问题是,我想摆脱
childArrays
中重复的parentArray
。因此,说一个childArray
看起来像这样:["Info1", "Info2", 25]
另一个子数组如下所示:
["Info1", "Info2", 50]
另一个看起来像这样:
["Info1", "Info2", 25]
我想查找两个
childArrays
是否相同,即第一个数组和第三个数组,如果是,则删除除一个相似数组之外的所有数组,最后删除,而不是像这样:[["Info1", "Info2", 25], ["Info1", "Info2", 50], ["Info1", "Info2", 25]]
我的
parentArray
看起来像这样:[["Info1", "Info2", 25], ["Info1", "Info2", 50]]
有可能实现这一目标吗?如果是这样,我将如何去做?
我希望这是有道理的。
最佳答案
您可以使用filter()
和thisArg
参数
var ar = [["Info1", "Info2", 25], ["Info1", "Info2", 50], ["Info1", "Info2", 25]];
var result = ar.filter(function(e) {
if(!this[e.join('|')]) {
this[e.join('|')] = true;
return e;
}
}, {});
console.log(result);