Javascript - 将数组搜索中的第一个值与其他数组中的值进行匹配

时间:2017-10-12 13:37:35

标签: javascript arrays reactjs loops search

所以我们假设我们有两个数组

const arr1 = [1, 2, 3, 4, 5];

const arr2 = [6, 7, 8, 9, 10, 4, 5,];

我想只返回第一个匹配值而不做两个for循环。因此,不要从arr1中获取第一个值,而是在arr2中查找第二个值。

在这种情况下,我需要返回4

在没有jQuery的情况下在React / Redux环境中工作。

4 个答案:

答案 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);