javascript - 使用 lodash 根据条件向对象集合添加新属性

标签 javascript lodash

我有一个这样的对象数组:

var data = [{ a: 1 },
            { a: 1 },
            { a: 2 },
            { a: 2 }];

如何使用 lodash 进行创建,一个新数组,就像 data但我们为此添加了一个新属性 b: 1每个具有属性 a 的对象等于 1

新数组应该是这样的:

var newdata = [{ a: 1, b: 1 },
               { a: 1, b: 1 },
               { a: 2 },
               { a: 2 }];

我想我们可以将两者结合起来 _.assign_.filer但我不知道如何。

最佳答案

您可以通过 _.defaults_.assign/_.assignIn/_.extend 使用 lodash 执行此操作:

var data = [{ a: 1 },{ a: 1 },{ a: 2 },{ a: 2 }];

console.log(_.map(data, x => x.a==1 ? _.defaults(x, {b: 1}) : x))
console.log(_.map(data, x => x.a==1 ? _.assign(x, {b: 1}) : x))
console.log(_.map(data, x => x.a==1 ? _.assignIn(x, {b: 1}) : x))
console.log(_.map(data, x => x.a==1 ? _.extend(x, {b: 1}) : x))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

关于javascript - 使用 lodash 根据条件向对象集合添加新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53767452/

相关文章:

javascript - 生成网格并使用 div 元素填充空单元格

javascript - 为什么 $.extend(window, window, someobject) 会触发页面刷新?

结合三个二维数组的 JavaScript,保持第一个值唯一

vue.js - Lodash 引用错误 : _ is not defined in Vue even though it works everywhere else

javascript - Lodash 的 _.add 函数有什么意义?

javascript - 在 JS 中查找对象特定值的键

javascript - 查找一个对象是否是javascript中另一个对象的子集

javascript - Masonry 的响应式布局在较宽的页面尺寸上有较大的间距

javascript - 读起来像 javascript object attr :val pairs 的 CSS 类

javascript - 如何避免两次走树