【问题标题】:How to add key value pair to all objects in an array with lodash如何使用 lodash 将键值对添加到数组中的所有对象
【发布时间】:2016-08-10 13:47:25
【问题描述】:

我正在循环一个对象数组,每个对象都有一个嵌套的对象数组:

_each(this.props.chartProps.data, function(item){
    //item.values is an array of objects
    });

我想为嵌套数组中的所有对象添加相同的键值对。换句话说,item.values 中的所有对象都应该添加一个新的键值对,称为newpair

我想克隆它。

有没有一种快速的 lodashian 方式来做到这一点?

【问题讨论】:

  • 如果你使用 react 改变你的 props 不是一个好主意
  • 原版中:item.values = item.values.map(value => { value.foo = bar; return value; })?
  • @gcampbell 为什么要克隆阵列?
  • 然后只使用forEach 代替吗? item.values.forEach( o => o[key] = "value");
  • 我想知道为什么 lodash 仍然用于这些东西。

标签: javascript arrays object lodash


【解决方案1】:

我使用了一个简单的地图数组原型方法:

item.values = item.values.map(value => { value.foo = bar; return value; });

【讨论】:

  • 这样你正在改变数组,不清楚它是否是OP想要的
  • 或许你可以做到value => ({foo: bar, ...value})
【解决方案2】:

这样的?

function modify(o) { /* set prop here */}

var objects = _.flatMap(array, function(o) { return o.values; });
_.forEach(objects, modify);

【讨论】:

    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2022-06-29
    • 2014-07-09
    • 2022-06-10
    • 2020-07-06
    相关资源
    最近更新 更多