gpt4 book ai didi

javascript - 如何返回两个数组之间的相似值,并按第二个数组的顺序返回?

转载 作者:行者123 更新时间:2023-12-01 11:23:55 26 4
gpt4 key购买 nike

我有 2 个数组。我试图返回 2 之间的相似值,但按第二个的顺序返回。例如,看一下两个数组:

array1 = ['a', 'b', 'c']
array2 = ['b', 'c', 'a', 'd']

我想返回的是:

sim = ['b', 'c', 'a']

这是一个link to what I am trying去完成。目前脚本有问题,没有捕捉到极端情况。

最佳答案

你可以使用 Set对于 array1 使用 Array#filter array2 通过检查集合。

var array1 = ['a', 'b', 'c'],
array2 = ['b', 'c', 'a', 'd'],
theSet = new Set(array1),
result = array2.filter(v => theSet.has(v));

console.log(result);

代码的一些注释:

function arr_sim (a1, a2) {
var //a = {}, // take an object as hash table, better
a = Object.create(null), // a really empty object without prototypes
sim = [],
i; // use single declaration at top

for (i = 0; i < a1.length; i++) { // iterate all item of array 1
a[a1[i]] = true;
}

for (var i = 0; i < a2.length; i++) {
if (a[a2[i]]) {
sim.push(a2[i]); // just push the value
}
}
return sim;
}

console.log(arr_sim(['a', 'b', 'c'], ['b', 'c', 'a', 'd']));

关于javascript - 如何返回两个数组之间的相似值,并按第二个数组的顺序返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49801478/

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