繁体   English   中英

如何保留同一对象但仅替换一个属性?

[英]How can I keep same object but replace only one property?

假设这是我的对象数组:

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

有没有更好的方法来实现这一目标?

谢谢。

使用Array#map进行迭代。 检查对象是否包含带有破折号的lastname 如果是这样,请使用清除的姓氏创建一个新对象。 如果没有返回原始对象。

注意:我已经使用对象传播替换了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); 

您可以使用正则表达式和array#map

 let data = [{ firstname: 'John', lastname: 'Doe' }, { firstname: 'Jane', lastname: '- Doe' }]; var result = data.map(({firstname, lastname}) => ({firstname, lastname: lastname.replace(/^\\s*\\-\\s*/g, '')}) ); console.log(result); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM