【发布时间】:2020-10-26 13:13:48
【问题描述】:
我在 Sonar 中遇到了一个重复的问题,我无法弄清楚如何纠正它。
这是示例代码。请不要 formFields 传递是在我的项目中维护的不可变状态。因此,如果我执行formFields.getIn(['home', 'value']),在这种情况下,我将尝试获取特定字段home 的值。我将所有值与'true' 进行比较。一旦我比较我将其各自的字符串推入lifeEvents。这些行(3,4 和 5,6)表明我正在复制比较并将数据推送到数组。
1. export const getLifeEvents = formFields => {
2. const lifeEvents = [];
3. if(formFields.getIn(['home', 'value']) === 'true')
4. lifeEvents.push("Buy home");
5. if(formFields.getIn(['married', 'value']) === 'true')
6. lifeEvents.push("Getting married");
7. return lifeEvents;
8. }
为了避免这种重复,我尝试了以下方法
export const getLifeEvents = formFields => {
const lifeEvents = [];
const Info = {
title: ['home', 'married'],
text: ['Buy home', 'Getting married']
}
const data = Info.title.map((e, i) => {
return { title: e, text: Info.text[i]
}
const result = data && data.map(item => {
if(formFields.getIn([item.title, 'value']) === 'true')
lifeEvents.push(item.text);
return lifeEvents;
});
}
当我这样做时,我总是不确定。有人可以建议吗
【问题讨论】:
标签: javascript arrays json reactjs object