如何使用forEach、map、reduce、filter等函数式编程方式更改每个对象中的arr['first']。
let value = 'abc'
let arr = [{
'first': 'aaa'
},{
'first': 'bbb'
},{
'first': 'ccc'
}];
如何使用forEach、map、reduce、filter等函数式编程方式更改每个对象中的arr['first']。
let value = 'abc'
let arr = [{
'first': 'aaa'
},{
'first': 'bbb'
},{
'first': 'ccc'
}];
first
。它使用Array.map()
创建一个新数组,并使用展开运算符复制每个项并将first
属性设置为value
: const value = 'abc';
const arr = [{ 'first': 'aaa' },{ 'first': 'bbb' },{ 'first': 'ccc' }];
const newArr = arr.map(item => ({ ...item, first: value }));
console.log(newArr);
如果您想要改变原始数组,虽然这不是函数式编程的好方法,但可以使用 Array.forEach()
代替:
const value = 'abc';
const arr = [{ 'first': 'aaa' },{ 'first': 'bbb' },{ 'first': 'ccc' }];
arr.forEach(item => item.first = value);
console.log(arr);
map
创建一个新的数组。最初的回答。
let value = 'abc';
let arr = [{
'first': 'aaa'
}, {
'first': 'bbb'
}, {
'first': 'ccc'
}];
let newArr = arr.map(function(item) {
return {
first: value
}
})
console.log(newArr)
如果我理解正确的话,您想使用map更改数组中每个对象的键名“first”?
您可以尝试以下代码:
const value = 'abc';
const arr = [{
'first': 'aaa'
},{
'first': 'bbb'
},{
'first': 'ccc'
}];
const newArr = arr.map(obj => {
if ('first' !== value) {
Object.defineProperty(obj, value,
Object.getOwnPropertyDescriptor(obj, 'first'));
delete obj['first'];
}
return obj;
});
console.log(newArr);
或者如果你只想改变每个对象中第一个值的值:
const value = 'abc';
const arr = [{
'first': 'aaa'
},{
'first': 'bbb'
},{
'first': 'ccc'
}];
const newArr = arr.map(obj => ({...obj, first: value}));
console.log(newArr);