有没有办法在_.set方法中使用字符串符号来匹配嵌套数组中的所有项目?
(例如,希望类似于MongoDB的_.set方法。全位置 操作者)
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/[email protected]/lodash.min.js"></script>