如果对象中不存在某个键的值,则将此元素添加到对象Javascript中



我有这个数组:

myArray=[
{name: 'joe', value: 'joe rogan'},
{name: 'sarah', value: 'sarah rogan'},
{name: 'jack', value: 'jack rogan'},
{name: 'steph', value: 'steph rogan'}
]

我想看看对象中是否不存在name: 'bob',将{name: 'bob', value: 'bob rogan'}添加到对象中。目前我正在这样做,但它为对象添加了3个元素:

for (let hasan in myArray) {
if (hasan.name !== "bob") {
tempArray.push({name: 'bob', value: 'bob rogan'});
}
}

如果使用es6-magic不存在name: 'bob',我如何向对象添加一个{name: 'bob', value: 'bob rogan'}元素?

使用Array.some检查内部是否有bob。它会向您返回真或假。稍后使用一个简单的if语句

let myArray=[
{name: 'joe', value: 'joe rogan'},
{name: 'sarah', value: 'sarah rogan'},
{name: 'jack', value: 'jack rogan'},
{name: 'steph', value: 'steph rogan'}
]
let found = myArray.some(({name}) => name === "bob");
if(!found) myArray.push({ name: "bob", value: 'bob rogan' })
console.log(myArray);

在您的代码中,对于每个元素,如果它不等于bob,它将添加bob。您需要做的是检查数组是否包含bob,在检查完所有数组后,如果不包含它们,则应该添加bob。

// filter the array and return the element that contains bob in the result array if exists.
var result = myArray.filter(elem => elem.name == 'bob');
// if the result array is empty then add 'bob'
if(result.length == 0){
myArray.push({name: 'bob', value: 'bob rogan'});
}

最新更新