javascript - 过滤掉二维数组的值

标签 javascript algorithm

我有一个二维数组,如下所示:

[[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]]

这怎么可能? 提前致谢

最佳答案

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

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

关于javascript - 过滤掉二维数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16667374/

相关文章:

javascript - 必填字段验证器不适用于 JQuery 选择的下拉列表

javascript - <head> 中应包含哪些 JavaScript,<body> 中应包含哪些内容?

c++ - 如何在 C++ 中对以下字符串序列进行排序?

java - Java 中的堆栈推送、弹出、查看算法

c# - Linq 检查列表是否在另一个列表中

javascript - 使用IP地址在本地机器上查询Sesame

javascript - 在 d3 force directed 中,如何通过单击更改 Node 形状?

javascript - 完全匹配javascript时如何获取对象数组中对象的索引

ROC 曲线的 Ruby 实现

algorithm - OpenCV:如何检测视频中是否有快速移动的物体?