Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当发现重复id时,如何筛选出数组及其值_Javascript_Arrays_Loops_Filter_Reduce - Fatal编程技术网

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都是整数,工作非常完美!我已经准备好了。