Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果对象中不存在某个键的值,则将此元素添加到对象Javascript中_Javascript_Arrays_Object_Ecmascript 6 - Fatal编程技术网

如果对象中不存在某个键的值,则将此元素添加到对象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)