obj = [{name: 'Elie'},{name: 'Tim'},{name: 'Elie'}]
function addKeyAndValue(arr,key,value) {
newOne = [];
arr.forEach(function(val,i,arr){
newOne.push(arr[i].key = value);
});
return newOne;
}
我正在尝试传递一个包含要添加的键和值的对象数组,如下所示:addKeyAndValue(obj, isItawesome, true)
然后我希望得到类似的东西:
[{name: 'Elie', isItawesome: true},{name: 'Tim', isItawesome: true},{name: 'Elie', isItawesome: true}]
但是我收到了一个错误...谁能解释一下为什么我会收到这个错误?
最佳答案
首先,您必须使用字符串作为键,因此以这种方式调用您的函数:
addKeyAndValue(obj, 'isItawesome', true)
其次,您将一个值而不是对象推送到该位置的数组中:
newOne.push(arr[i].key = value);
将其更改为:
newOne.push({...val, [key]: value})
如果你想让它变得更好:
function addKeyAndValue(arr, key, value){
return arr.map(el => ({...el, [key]: value });
}
关于javascript - 无法理解为什么我收到 ReferenceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49464366/