[英]Redux ES6 (BabelJS): is there a map function that can iterate this structure?
{
'1': {
id: 1,
parent_id: 0,
elementType: 'view',
style: {color: 'green'},
selected: false,
childIds: [2]
},
'2': {
id: 2,
parent_id: 1,
elementType: 'text',
style: {color: 'green'},
selected: true,
childIds: []
}
}
它是用于减速器的,我很希望能够做到这一点:
obj.map(([key, value])=> {
if (value.id === 1) {
return {...value, selected:false};
} else {
return value;
}
});
我想,也许用这个 ,但它可能不会与终极版测绘发挥出色。
更新:
按照这里的建议,我尝试构建一个新的地图函数。 这个版本是我自带的:
const map = (object, callback) => {
return Object.keys(object).reduce(function(output, key) {
output[key] = callback.call(this, object[key]);
return output;
}, {});
}
我试图像这样使用它(一个示例):
let newState = map(oldState, element => {
if (element.id === 1) {
return {...element, selected:false};
} else {
return {...element};
}
});
同时测试通过了。
尝试使用Object.keys(),它将使您能够遍历对象键,这样便可以访问特定的值。
您可以尝试使用Object.entries
。 它仍然是一个建议,但我认为它已经隐藏在一些通天塔舞台标志的后面。
for (const [key, value] of Object.entries(obj)) {
//do whatever you want
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.