如果对象中不存在某个键的值,则将此元素添加到对象Javascript中
我有这个阵列:如果对象中不存在某个键的值,则将此元素添加到对象Javascript中,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,我有这个阵列: 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个元素:
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',value:'bob rogan'}
元素,我如何向对象添加一个{name:'bob'
元素?使用数组。一些检查内部是否有bob。它会返回true或false。稍后您将使用一个简单的if
语句
让myArray=[
{名称:'joe',值:'joe rogan'},
{name:'sarah',value:'sarah rogan'},
{名称:'jack',值:'jack rogan'},
{名称:'steph',值:'steph rogan'}
]
让found=myArray.some({name}=>name===“bob”);
if(!found)myArray.push({name:“bob”,value:'bob rogan'})
log(myArray)代码>在您的代码中,对于每个元素,如果它不等于bob,它将添加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'});
}
for..in
循环在每个循环中获取密钥。因此,hasan
是数组的索引,而不是每个对象的索引。您需要使用for..of
循环:for(让hasan使用myArray)