0

let arr1 = ['你好','我很好'];

let arr2 = [

         { name: '我不知道',value: 0},
         { name: '我不好',value: 1}, 
         { name: '你好',value: 2},
         { name: '我特别布好',value: 3},    
         { name: '我很好',value: 4},
       ];

请问该怎么判断这里面的值相等啊?最后输出value

2018-08-14 提问
5 个回答
6

已采纳
arr2.filter(function(el) {
    return ~arr1.indexOf(el.name)
}).map(function(item) { return item.value })
2
回复 胡椒波

取反,-1取反是0,相当于false; >-1 取反都是 非0的,相当于true。 这种操作在某些开源项目里见过,平常人还是采用更可读的 arr1.indexOf(el.name) > -1 更为清晰,想“装逼”的话偶尔也可以用用。

ezmo · 2018年08月14日

展开评论
2
arr2.forEach(item => {
  if (arr1.indexOf(item.name) > -1) {
    console.log(item.value);
  }
})
0
for(i in arr2){
    // 打印所有“你好”的值
    if(arr[0] == arr2[i].name) {
        console.log(arr2[i].value)
    }
}
0

arr1.forEach(el => {

console.log(arr2.filter(item => item.id == el)[0].value)

})

0
arr1.map((el) => arr2.find(item => item.name === el).value)

撰写答案

推广链接