【问题标题】:react js lodash loop thru and change a field value响应 js lodash 循环并更改字段值
【发布时间】:2021-02-04 19:54:45
【问题描述】:

我是 reactjs 和 lodash 的新手。我有一个对象数组,每个对象都有许多字段属性。如果布尔属性为真,我想更改名称字符串值。我通过这里的一些帖子阅读,似乎 .map 将通过数组循环

const updatedList = this.props.oldList.map((record) => record.IsTrue === 1 ? `$({record.name} (Updated)` : record.name)

我进行了测试,但它根本没有用。我没有返回具有所有属性的对象列表,而是得到以下内容

0: "Test1 (Updated)"
1: "Test2"

没有具有字段名称和值的对象。我期待以下

[
  {name: "Test1 (Updated)", IsTrue: 1},
  {name: "Test1", IsTrue: 0}
]

感谢您对 lodash 的任何帮助。

【问题讨论】:

  • 除了更新名称,您还需要返回其他属性,如下所示const updatedList = this.props.oldList.map((record) => ({...record, name: record.IsTrue === 1 ? `$({record.name} (Updated)` : record.name)})
  • 那行不通
  • 你遇到了什么错误?您可以分享示例输入吗?
  • 该值从未更新,即使认为是True === 1
  • const updatedList = this.props.oldList.map((record) => {return {...record, name:record.IsTrue === 1 ?${record.name} (Updated):record.name} })

标签: reactjs lodash


【解决方案1】:

您可以使用扩展语法返回另一个键和值,并更新 isTrue 为 1 的名称-值。

const input = [{ name: "Test1", IsTrue: 1 }, { name: "Test1", IsTrue: 0 }],
    output = input.map((record) => ({ 
      ...record,
      name: record.IsTrue === 1 ? `${record.name} (Updated)` : record.name
    }));
console.log(output);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2019-07-30
    • 1970-01-01
    • 2021-12-14
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多