我有一个数组,每次用户单击一个按钮时,该数组就会填充信息。被推到该阵列的信息在阵列本身内。所以类似的东西:

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);

08-08 08:16