$scope.MyArray = [
{id:'01', name:'test1', dept:'abc1', address: 'xyz1'},
{id:'02', name:'test2', dept:'abc2', address: 'xyz2'},
{id:'03', name:'test3', dept:'abc3', address: 'xyz3'}
];
这是我的数组列表,我必须使用列索引来更新字段,
例如,我有一个索引值[2],它是字段dept
。
要在行def
的{{1}}的字段处将字段值更新为dept
。
预期结果是
01
答案 0 :(得分:0)
在访问dept
之前,您需要访问要进行更改的object
。
您可以使用map
来创建一个新数组,并在该数组的内部回调检查对象的id
,如果匹配则更新该对象的dept
var MyArray = [{
id: '01',
name: 'test1',
dept: 'abc1',
address: 'xyz1'
},
{
id: '02',
name: 'test2',
dept: 'abc2',
address: 'xyz2'
},
{
id: '03',
name: 'test3',
dept: 'abc3',
address: 'xyz3'
}
];
const newArray = MyArray.map((item, index) => {
if (item.id === '01') {
return Object.assign({}, item, {
dept: 'newDept'
})
}
return item;
});
console.log(newArray)
答案 1 :(得分:0)
您需要使用JavaScript object
函数访问map
,然后可以在该对象上使用Object.keys
来获取键和索引。
稍后,您可以使用if
检查该索引。
这是工作示例:
var MyArray = [
{id:'01', name:'test1', dept:'abc1', address: 'xyz1'},
{id:'02', name:'test2', dept:'abc2', address: 'xyz2'},
{id:'03', name:'test3', dept:'abc3', address: 'xyz3'}
];
var changedArray = MyArray.map((item, index) => {
Object.keys(item).map((key, i) => {
if(i === 2) {
return item[key] = 'test' //you can add dynamic value instead of 'test'.
}
})
return item;
});
console.log(changedArray);
输出:
changedArray = [
{ id: '01', name: 'test1', dept: 'test', address: 'xyz1' },
{ id: '02', name: 'test2', dept: 'test', address: 'xyz2' },
{ id: '03', name: 'test3', dept: 'test', address: 'xyz3' }
]