gpt4 book ai didi

javascript数组在另一个数组中重复

转载 作者:行者123 更新时间:2023-11-30 10:35:17 25 4
gpt4 key购买 nike

假设我在 javascript 中有这个数组

ar = ['C241C12A-45FD-40FF-B26E-B879107E584D||20',
'AB1BB99D-4396-415A-A5D8-1BEF3E0149CE||33',
'ADE54113-53D1-4F26-A01C-48EBE37E3CE8||85',
'DB500FD1-5988-4202-A4AA-727AC29AC67A||85',
'8A8EAB5A-E0D2-4AA8-96A0-42686FF5EB0C||10',
'50C29E8A-16C7-4FC2-A186-C3D65F23C627||200',
'70C79BBB-14C7-4F34-346B-CSSSDFVFZZZ7||200'
];

有没有办法得到这样的数组

newarray1 = [
'ADE54113-53D1-4F26-A01C-48EBE37E3CE8||85',
'DB500FD1-5988-4202-A4AA-727AC29AC67A||85'
];
newarray2 = [
'50C29E8A-16C7-4FC2-A186-C3D65F23C627||200',
'70C79BBB-14C7-4F34-346B-CSSSDFVFZZZ7||200'
];

管道符号后面的重复值,获取该值并基于该值形成一个新数组

最佳答案

var arraysByKey = {};
for (var i=0; i<ar.length; i++) {
var key = ar[i].split("||")[1];
if (key in arraysByKey)
arraysByKey[key].push( ar[i] );
else
arraysByKey[key] = [ ar[i] ];
}

结果 (arraysByKey) 将如下所示:

{
"10": [
"8A8EAB5A-E0D2-4AA8-96A0-42686FF5EB0C||10"
],
"20": [
"C241C12A-45FD-40FF-B26E-B879107E584D||20"
],
"33": [
"AB1BB99D-4396-415A-A5D8-1BEF3E0149CE||33"
],
"85": [
"ADE54113-53D1-4F26-A01C-48EBE37E3CE8||85",
"DB500FD1-5988-4202-A4AA-727AC29AC67A||85"
],
"200": [
"50C29E8A-16C7-4FC2-A186-C3D65F23C627||200",
"70C79BBB-14C7-4F34-346B-CSSSDFVFZZZ7||200"
]
}

如果您只想要存在“重复值”的数组,只需过滤结果:

for (var key in arraysByKey)
if (arraysByKey[key].length < 2)
delete arraysByKey[key];

关于javascript数组在另一个数组中重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com