提前感谢您的帮助!顺便说一句,我总是投票
所以我有这个成员列表
export const currentMembers= {
'A1': {
'memberStartDate': 0,
'currentContractEndDate': 0,
'flagged': false,
'notes': 'Some Notes about member',
'memberId': 'A1',
},
'A2': {
'memberStartDate': 1454306400000,
'currentContractEndDate': 1501747600000,
'notes': 'Some Notes about member',
'flagged': false,
'memberId': 'A2',
},
'A3': {
'memberStartDate': 1454306400000,
'currentContractEndDate': 1502747600000,
'notes': 'Some Notes about member',
'flagged': false,
'memberId': 'A3',
},
}
我正在尝试编写一个函数,它将返回相同的列表,但带有插入的计算值,如下所示:
export const currentMembersModified = {
'A1': {
'memberStartDate': 0,
'currentContractEndDate': 0,
'daysRemainingInContract': 0, // calculated from currentMembers object above
'flagged': false,
'notes': 'Some Notes about member',
'memberId': 'A1',
},
'A2': {
'memberStartDate': 1454306400000,
'currentContractEndDate': 1501747600000,
'daysRemainingInContract': 123, // calculated from currentMembers object above
'notes': 'Some Notes about member',
'flagged': false,
'memberId': 'A2',
},
'A3': {
'memberStartDate': 1454306400000,
'currentContractEndDate': 1502747600000,
'daysRemainingInContract': 234, // calculated from currentMembers object above
'notes': 'Some Notes about member',
'flagged': false,
'memberId': 'A3',
},
}
我一直在努力:
const modifiedMembers = Object.keys(currentMembers).forEach(key => {
const currentMemberObject = currentMembers[key]
const currentDate = new Date()
const currentEndDate = currentMembers[key].currentContractEndDate
const calculatedDateStuff = currentEndDate - currentDate
return {stuff I don't know how to do}
})
谢谢!
最佳答案
如果您在 React 项目中使用 babel,那么根据您所包含的阶段,您可以尝试如下操作:
var newMembers; // new object/state
Object.keys(currentMembers).forEach((key) => {
var calculatedDays = currentMembers[key].currentContractEndDate - 21343214213; // or whatever logic you need here
var member = {};
member[key] = {
...currentMembers[key],
calculatedDays
}
newMembers = {
...newMembers,
...member
}
});
这使用扩展运算符组合对象。 ES6 目前只允许使用展开运算符来组合迭代,但由于 babel,将它们与对象一起使用是一种常见的 React 模式,因为这意味着您可以避免更改原始对象。
关于javascript - 迭代对象列表但插入计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43578406/