Javascript 当发现重复id时,如何筛选出数组及其值
如果从第一个/前一个数组中发现重复的Javascript 当发现重复id时,如何筛选出数组及其值,javascript,arrays,loops,filter,reduce,Javascript,Arrays,Loops,Filter,Reduce,如果从第一个/前一个数组中发现重复的id,我如何删除或过滤出后续数组及其值?举个例子: const a1 = ["id1", "b", "c", "d", "e"], a2 = ["id2", "y", "z", "w", "v"], a3 = ["id3"
id
,我如何删除或过滤出后续数组及其值?举个例子:
const a1 = ["id1", "b", "c", "d", "e"],
a2 = ["id2", "y", "z", "w", "v"],
a3 = ["id3", "k", "j", "i", "f"],
a4 = ["m", "n", "o", "p", "id2"],
a5 = [1, 2, "id1", 3, 4]
因为id1
也可以在a5
中找到,而id2
也可以在a4
中找到。因此,删除/过滤掉那些包含重复的id1、id2、id3…id(n)
的整个数组,而不管它们的值不同,只保留第一个数组中唯一的id
首先显示的位置。因此,上述示例的预期输出为:
[
["id1", "b", "c", "d", "e"],
["id2", "y", "z", "w", "v"],
["id3", "k", "j", "i", "f"]
]
您可以将数组放入数组中,并使用对象作为哈希表进行筛选
const
数据=[“id1”、“b”、“c”、“d”、“e”]、[“id2”、“y”、“z”、“w”、“v”]、[“id3”、“k”、“j”、“i”、“f”]、[“m”、“n”、“o”、“p”、“id2”]、[1,2”、“id1”、“3,4],
seen={},
结果=数据。过滤器(a=>{
const id=a.find(v=>v.toString().startsWith('id');
如果(见[id])返回;
返回seen[id]=true;
});
console.log(结果)
.as控制台包装{max height:100%!important;top:0;}
你说的“删除”是什么意思?来自什么?请添加您的try。删除变量不是一件事。你真的是在说输出是JavaScript代码吗???@NinaScholz在下面以某种方式正确地回答了我的问题。这很好。你正在处理不包含或以“id”字符串开头的多个id,你的情况如何。例如(“123452345634567等”)?它的id是什么?不用担心。看来你的答案很有效!我用不同的ID测试了它,这些ID都是整数,工作非常完美!我已经准备好了。