1

我有一个看起来像这样的二维数组:

[[10, 20, 30, S1]
[10, 20, 30, S1]
[10, 20, 30, S1]
[50, 70, 80, G1]
[50, 70, 80, G1]
[50, 70, 80, G1]]

我想过滤掉每个子数组的第 4 个值的每个“非第一次”出现,如下所示:

[[10, 20, 30, S1]
[10, 20, 30]
[10, 20, 30]
[50, 70, 80, G1]
[50, 70, 80]
[50, 70, 80]]

这怎么可能?提前致谢

4

1 回答 1

2

您可以使用对象来跟踪找到的值,并在找到之前从子数组中删除最后一项:

var items = {};
for (var i = 0; i < arr.length; i++) {
  var id = arr[i][arr[i].length - 1];
  if (items.hasOwnProperty(id)) {
    arr[i].pop();
  } else {
    items[id] = 1;
  }
}
于 2013-05-21T10:11:57.480 回答