繁体   English   中英

Lodash 设置数组的每个元素

[英]Lodash set every element of an array

有没有办法在 _.set 方法中使用字符串表示法来匹配嵌套数组中的所有项目?

(例如,希望类似于 MongoDB 的位置 all运算符)

const doc = {
  nested: [{a: 1}, {a: 2}, {a: 3}]
}

_.set(doc, "nested.$[].a", 5)

// console.log(doc)
// {
//   nested: [{a : 5}, {a: 5}, {a: 5}]
// }

不,您不能使用.set()方法设置嵌套数组中的每个元素,但您可以这样做:

 const doc = { nested: [{a: 1}, {a: 2}, {a: 3}] } // Your attempt. // _.set(doc, "nested.$[].a", 5) // Just use a.map() with.assign() instead. const doc2 = _.assign({}, doc, { nested: _.map(doc.nested, (obj) => _.assign({}, obj, { a: 5 })) }); console.log(doc2) // { // nested: [{a: 5}, {a: 5}, {a: 5}] // }
 <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM