检查对象键在对象数组中是否存在,如果不存在则添加



你们知道怎么做更简单/更聪明吗?

如果对象中不存在键,我想添加一个名称为value的标签key。这是我的清单:

myList = [
{
name: 'Candy',
label: 'xx',
},
{
name: 'Mike',
label: 'yy',
},
{
name: 'Betty',
}
]

和我的解决方案:

assignLabel = list => {
const casesWithoutLabel = list.filter(({ label }) => !label).map(item => ({
...item,
label: item.name
}))
const casesWithLabel = list.filter(({ label }) => label)
return [ ...casesWithoutLabel, ...casesWithLabel ]
}
assignLabel(myList)

输出
[
{
name: 'Candy',
label: 'xx',
},
{
name: 'Mike',
label: 'yy',
},
{
name: 'Betty',
label: 'Betty'
}
]

它给了我很好的输出,但它不优雅,我不知道现在如何改进。请帮帮我!

我已经为你创建了简单的脚本,请看看!

let myList = [
{
name: 'Candy',
label: 'xx',
},
{
name: 'Mike',
label: 'yy',
},
{
name: 'Betty',
}
];
let list = myList.map((item) => {
let {name, label} = item;
if(label == undefined){
item["label"] = name;
}
return item;
});
console.log(list);

您的代码似乎非常高级,只分配属性,所以也许我错过了一些东西,但您可以简单地循环遍历列表(或过滤器oc)

myList = [{name: 'Candy',label: 'xx',},{name: 'Mike',label: 'yy',},{name: 'Betty',}];
for(const obj of myList)
if(!obj.label)obj.label = obj.name;

console.log(myList);

相关内容

最新更新