假设我有一个数组:
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'); //"说明"
就事论事的话,直接把
item.name
改成item && item[key]
就完了。