首页 > 解决方案 > 我使用 every() 方法得到不同的结果

问题描述

我有 2 个函数做同样的事情,但由于某种原因,结果不同。

我错过了什么?TIA

let arr = [
        {first: 'Jules', last:'Atkinson'}, 
        {first: 'Ralf', last:'Benson', isInstructor: true}, 
        {first: 'Quinten', last:'Pottinger'}, 
        {first: 'Linden', last:'Knaggs', isInstructor: true}
    ]

function getCertainKey1(arr, key) { // gives me FALSE
    return arr.every((val) => {
        key in val;
    });
}

function getCertainKey2(arr, key) {  // gives me TRUE
    return arr.every(val => key in val);
}


console.log(getCertainKey1(arr, 'first'));
console.log(getCertainKey2(arr, 'first'));

标签: javascriptarrays

解决方案


return arr.every((val) => {
    key in val;
});

由于函数体周围有花括号 ({}),因此它实际上不会返回任何值。要么说return key in val要么去掉花括号。


推荐阅读