如何对数组中相同key统一赋值?
有以下两个数组, 其中'name'后缀的数字由arr决定。arr数组有多长,array里的name就有多少个
let arr=[0,1,2,3];
let array=[
{
name0:'1',
name1:'',
name2:'',
name3:'',
},
{
name0:'',
name1:'',
name2:'2',
name3:'',
},
{
name0:'',
name1:'6',
name2:'',
name3:'',
},
{
name0:'',
name1:'',
name2:'',
name3:'9',
},
]
如何使得数组中相同key的value一样,效果如下
array=[
{
name0:'1',
name1:'6',
name2:'2',
name3:'9',
},
{
name0:'1',
name1:'6',
name2:'2',
name3:'9',
},
{
name0:'1',
name1:'6',
name2:'2',
name3:'9',
},
{
name0:'1',
name1:'6',
name2:'2',
name3:'9',
},
]
回复
1个回答

test
2024-06-26
let arr = [0, 1, 2, 3];
let array = [
{
name0: '1',
name1: '',
name2: '',
name3: '',
},
{
name0: '',
name1: '',
name2: '2',
name3: '',
},
{
name0: '',
name1: '6',
name2: '',
name3: '',
},
{
name0: '',
name1: '',
name2: '',
name3: '9',
},
];
let values = {};
// 遍历数组,更新values对象
array.forEach(item => {
arr.forEach((_, index) => {
let key = 'name' + index;
if (item[key]) {
values[key] = item[key];
}
});
});
array = array.map(() => {
let newObj = {};
arr.forEach((_, index) => {
let key = 'name' + index;
newObj[key] = values[key] || '';
});
return newObj;
});
console.log(array);
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容