假设这是我的对象数组:
let data = [{
firstname: 'John',
lastname: 'Doe'
},
{
firstname: 'Jane',
lastname: '- Doe'
}]
现在,我想创建一个新对象,但是在 - Doe
所在的位置,我需要删除这部分 -
并只留下 Doe
.
我试过这个:
let pollyData = data.map(item => _.mapValues(item, val => val.lastname.split('- ').pop()))
但是,我得到 undefined
。
是否有更好的方法来实现这一点?
谢谢。
最佳答案
迭代数组#map。检查对象是否包含带破折号的 lastname
。如果是这样,请创建一个带有干净姓氏的新对象。如果不是返回原始对象。
注意:我用过object spread替换 lastname
。如果您的构建堆栈不支持,您可以使用 Object.assign({}, obj, { lastname: obj.lastname.replace(/^-\s+/, '') })
代替。
const data = [{
firstname: 'John',
lastname: 'Doe'
},
{
firstname: 'Jane',
lastname: '- Doe'
}
];
const result = data.map((obj) => obj.lastname.includes('-') ? ({
...obj,
lastname: obj.lastname.replace(/^-\s+/, '')
}) : obj);
console.log(result);
关于javascript - 如何保留相同的对象但只替换一个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47893242/