javascript - 如何保留相同的对象但只替换一个属性?

标签 javascript jquery arrays lodash

假设这是我的对象数组:

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/

相关文章:

javascript - jQuery 替换两个存在于 TD 中的 div 类

c++ - 在 C++ 中为 double 类型的数组创建 unique_ptr

javascript - Video.js 在 iOS 上加载文件时停滞

javascript - 如何在圆形进度条的路径中放置动画?

javascript - 请求建议 - 使用 json/jquery 和 ajax 在函数之间传递变量

javascript - 如何使用子元素以外的元素作为拖动 handle ?

javascript - 尝试使用 For Loop 创建一副纸牌

带有循环引用的 Javascript 深度克隆对象

java - 如何从文件中获取数组输入,对其进行排序并在同一文件中显示输出

php - 如何访问这个数组内部元素?