所以我们假设我们有两个数组
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [6, 7, 8, 9, 10, 4, 5,];
我想只返回第一个匹配值而不做两个for循环。因此,不要从arr1
中获取第一个值,而是在arr2
中查找第二个值。
在这种情况下,我需要返回4
。
在没有jQuery的情况下在React / Redux环境中工作。
答案 0 :(得分:3)
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [6, 7, 8, 9, 10, 4, 5,];
arr1.find((x) => arr2.indexOf(x) >=0);
那将抓住第一场比赛
答案 1 :(得分:0)
您可以find()
使用includes()
方法。
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [6, 7, 8, 9, 10, 4, 5,];
var r = arr1.find(e => arr2.includes(e));
console.log(r)
答案 2 :(得分:0)
Ecmascript5解决方案(带Array.some()
功能):
var arr1 = [1, 2, 3, 4, 5],
arr2 = [6, 7, 8, 9, 10, 4, 5,],
result;
arr2.some(function(n){ return arr1.indexOf(n) !== -1 && (result = n) })
console.log(result);
答案 3 :(得分:0)
您可以使用Set
的力量。
const
arr1 = [1, 2, 3, 4, 5],
arr2 = [6, 7, 8, 9, 10, 4, 5],
result = arr2.find((s => a => s.has(a))(new Set(arr1)));
console.log(result);