我找不到这么简单的答案。如何改变对象属性,例如一个 bool 标志,然后在一行代码中返回变异对象?根据我下面的示例,现在需要两个。我读到的所有内容都说使用 map 与 for/forEach。
toggleMenu(obj) {
this.data = _.mapValues(this.data, function(v) {
v.submenu = (v.submenu ^ (v.id === obj.id));
return v;
});
}
更新
我应该补充一点,返回对象应该/可以不同,即 this.other = ...
与 this.data = ...
toggleMenu(obj) {
this.other = _.mapValues(this.data, function(v) {
v.submenu = (v.submenu ^ (v.id === obj.id));
return v;
});
}
最佳答案
当您想要改变现有数组而不返回新数组时,无需重新分配值。在这种情况下,最好使用 _.forEach()
(或 _.forOwn()
因为它是一个对象):
toggleMenu({ id }) {
_.forEach(this.data, v => v.submenu ^= (v.id === id))
}
关于javascript - JS/lodash : Mutate and return data in one line of code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58359138/