如何获取嵌套数组中对象的值



我试图在嵌套数组的映射循环中更改对象值

对象示例

var data = [[{name: 'test', values: [{isSelected: true}] }]]

var resertData = data.map(filterArray => {
return filterArray.map(filter => {
return filter.values.map(values => {
return values.isSelected = false
})
})
})

所需输出应为

[[{name: 'test', values: [{isSelected: false}] }]]

我正在处理我的代码

'[[[false]]]'

请帮帮我伙计们

提前感谢:)

很明显,只返回更改后的字段会覆盖现有字段。返回指定要更改的字段值的整个对象,并使用对象析构函数来保留现有对象。试试这个:

var resertData = data.map(filterArray => {
return filterArray.map(filter => {
return {
...filter,
values : filter.values.map(values => {
return {isSelected : false}
})
}
})
})

更新原始对象中的属性值。您可以使用Array.forEach()

实时演示

var data = [[{name: 'test', values: [{isSelected: true}] }]];
data.forEach(filterArray => {
filterArray.forEach(filter => {
filter.values.forEach(values => {
values.isSelected = false
});
});
});
console.log(data);

或者您可以通过更清洁的方式来实现:

var data = [[{name: 'test', values: [{isSelected: true}] }]];
const [[dataObj]] = data;
dataObj.values.forEach(o => o.isSelected = false);
console.log(data);

最新更新