JavaScript:如果在特定索引中发现重复值,是否有从数组中删除项目的函数?

或纳卡什

我有一个包含三列的数组:

[ '27', 'Name', '1' ],
[ '27', 'Name', '1' ],
[ '27', 'Name', '1' ],
[ '27', 'Name', '2' ]

我试图删除在第三列中有重复的项目,所以我得到:

[ '27', 'Name', '2' ]

我正在使用此代码:

  function getUniqueListBy(arr, key) {
    return [...new Map(arr.map(item => [item[key], item])).values()]
  }

let newArray = getUniqueListBy(myArr, '2');

它在删除重复项方面做得非常好,但我也想删除该项目(已复制的项目)。如果可能,我希望代码尽可能高效。我怎样才能做到这一点?

解码器

映射:您可以在索引处创建元素映射,2并将值存储为index包含该索引处相同值的数组

它是一个元素字典,在2索引处包含相同的元素

过滤器:如果2索引数组长度的元素应该是,则过滤结果并在字典中查找1

const arr = [
  ["27", "Name", "1"],
  ["27", "Name", "1"],
  ["27", "Name", "1"],
  ["27", "Name", "2"],
];

// [ '27', 'Name', '2' ]
const map = new Map();

// na is nestedArray
arr.forEach((na, i) => {
  const value = na[2];
  if (map.has(value)) map.get(value).push(i);
  else map.set(value, [i]);
});

const result = arr.filter((na, i) => map.get(na[2]).length === 1);
console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果在特定列中发现重复项,则用于更改值的 Excel VBA 代码

如果在PHP中重复超过特定数量,如何从数组中删除项目?

提示一个Msgbox并删除,如果在excel中发现重复项

抛出错误,如果在表中发现重复数据(不是重复记录)

如果在某些关键javascript中具有相同的值,则显示数组

如果在其中一列中发现了行,则从两列文件中删除行

如果在表中多次发现 a 列中的相同值,则排除所有行

如果在 php 中获得重复值,则在数组中添加值

检查数组中的项目,如果在JS / HTML中打印特定文本

如果在带有壁球的 rebase 中添加和删除文件,git 是否会从索引和历史记录中永久删除文件?

如果在IQR之外,请删除列表中的项目

Javascript:从数组中删除特定项目并返回没有这些项目的原始数组

如果在R中重复所有值,请用NA填充列

如果在单元格中删除或添加特定值

如果在Javascript ES6中为空,则从对象中删除子数组

查找和删除文件,同时保留所有匹配的文件(如果在特定目录中)

检索numpy数组中具有特定值的随机项目的索引

如果在对象数组中不为真,javascript更新属性值

如果在 Animator 中带有参数的函数

如果在Pandas中删除重复项时保留一列值不为None的行

如果在 A、B 和 C 列中同时发现 #N/A,则删除整行的 VBA 代码

从列表中删除重复的值,同时跟踪已删除项目的索引

如果在C ++ 17中“删除”或“未声明”了移动/复制构造函数/赋值,是否已确定?

熊猫多索引:如果在第二索引中,则打印所有第一索引

如何找到索引,如果在字典中的字典中有一个键的多个值?

如果在给定的示例中调用了javascript函数,该函数应采用哪个值?

如果在熊猫交换后列值相同,则删除重复项

如果在提示上单击“取消”,是否可以杀死具有多个输入提示的Javascript函数?

如果在特定元素之外单击,请删除具有特定类的所有元素