如何在数组中通过对象key值查找对象

假设我有一个数组:

const info = [
    {name:'名字'},
    {description:'说明'},
];

我创建了一个处理这样的数组的组件,类似如下:

function arrayMap(arr) {
    return arr.map((item) => {
        if (item.name) {
            return item.name;
        }
    });
}

我调用arrayMap(info)之后就会输出info这个数组里面name的值,也就是'名字'。
这个组件只能输出数组里面对应name的值,不能输出description的值。
我想要改一下这个组件,让他能够多一个参数,调用时可以自由选择输出的key值。
调用arrayMap(arr, key)时,arr是输入的数组,key是输入的key值,让这个组件能够自由输出name或者description的值,该怎么办呢?

最后修改方案:

function arrayMap(arr, key) {
    return arr.map((item) => {
        if (item[key]) {
            return item[key];
        }
    });
}

arrayMap(info, 'name'); //"名字"
arrayMap(info, 'description'); //"说明"
阅读 6k
2 个回答

就事论事的话,直接把item.name改成item && item[key]就完了。

为什么不直接,info.description 呢,,,

const info = {
    name: '名字',
    description: '说明'
};

function arrayMap(arr, key) {
    return arr[key];
}

console.log(arrayMap(info,'name'));//名字
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题