繁体   English   中英

检查 object 键是否存在于 object 的数组中,如果不存在则添加

[英]Check if object key exists in array of object and add if not exists

你们知道如何更简单/更聪明地做到这一点吗?

如果密钥在 object 中不存在,我想添加一个具有名称值的 label 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)

Output

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

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

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

 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM