我有一个这样的对象数组:
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/