我有JavaScript对象:
myData = {
items: [
{
flag: false,
text: "good text"
},
{
flag: true,
text: "good text"
},
{
flag: false,
text: "good text"
}
]
}
如何在flag = true
。
例如,只需要将第二个对象从"good text"
更改为"bad text"
,因为我的示例中只有此对象具有flag = true
。
我想在JavaScript中使用Lodash这样做。
答案 0 :(得分:1)
如果你必须使用lodash,这应该有效:
_.forEach(myData.items, function (item) {
if (item.flag) {
item.text = 'bad text';
}
});
答案 1 :(得分:0)
您可以使用此代码段更改文字。
myData.items = _.map(_.get(myData, 'items'), (item) => {
if (item.flag) {
item.text = "new text"
}
return item;
});
答案 2 :(得分:0)
你真的不需要lodash ......
这是一个不使用它的解决方案
myData.items.forEach(item => item.text = item.flag ? "bad text" : item.text)
const myData = {
items: [
{
flag: false,
text: "good text"
},
{
flag: true,
text: "good text"
},
{
flag: false,
text: "good text"
}
]
};
console.log(JSON.stringify(myData.items));
myData.items.forEach(item => item.text = item.flag ? "bad text" : item.text);
console.log(JSON.stringify(myData.items));
答案 3 :(得分:0)
如何:_(myData.items).filter('flag').each(x => x.text='bad text');