【问题标题】:Concatenate a string to each object of an array将字符串连接到数组的每个对象
【发布时间】:2017-12-27 12:45:18
【问题描述】:

我有一个如下所示的数组:

myArray = [[EnterNode {name: "name1", _value_: 12.32 }],
           [EnterNode {name: "name2", _value_: 42.39 }],
           [EnterNode {name: "name3", _value_: 77.32 }],
           [EnterNode {name: "name4", _value_: 52.31 }],
           ...
]

我不知道EnterNode 是什么意思,但这就是我在控制台中打印它时的样子。

我希望每个_value_ 连接一个字符串,例如" kg",所以在这个过程之后数组看起来像这样:

myArray = [[EnterNode {name: "name1", _value_: "12.32 kg" }],
           [EnterNode {name: "name2", _value_: "42.39 kg" }],
           [EnterNode {name: "name3", _value_: "77.32 kg" }],
           [EnterNode {name: "name4", _value_: "52.31 kg" }],
           ...
]

我尝试这样做:

myArray.forEach(_value_ => _value_ + " kg") 但我得到undefined 结果。

有什么建议吗?

【问题讨论】:

  • 使用.map 而不是.forEach。 Foreach 不返回任何内容,而 map 返回修改后数组的副本
  • 这样做了,我的数组现在包含这些:"[object Object] kg"
  • 不完全重复,但应该可以帮助您:stackoverflow.com/questions/16691833/…

标签: javascript arrays foreach


【解决方案1】:

myArray.forEach(value => value + " kg") 但我未定义为 结果。

因为您没有将值保存回数组中每个项目的_value_ 属性

做起来

myArray.forEach( obj => ( obj._value_ += " kg" ) ); 

观察迭代发生在数组的项目上,而不是_value_

演示

var myArray = [
   {name: "name1", _value_: 12.32 },
   {name: "name2", _value_: 42.39 },
   {name: "name3", _value_: 77.32 },
   {name: "name4", _value_: 52.31 }
];

myArray.forEach( obj => ( obj._value_ += " kg" ) ); 
 
console.log( myArray );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    相关资源
    最近更新 更多