我想从app locals变量中更改数组中的一个项目,我不知道该怎么做
这是我设定为全球的
app.locals.products=[{name: 'a',url: '/a' },
{name: 'b',url: '/b' },
{name: 'c',url: '/c' },...
我想编辑它们并从路线设置活动产品并执行类似的操作
products:[{name: 'a',url: '/a' active:true}],
但是,当我这样做时,它将删除所有其他项目,并仅设置我写的产品。有没有办法只编辑我需要的那个并保持其余的不变?
答案 0 :(得分:2)
您可以使用数组查找功能查找products数组中的特定项目并进行编辑。
function setActive(name) {
var element = products.find(function(product) {
return product.name === name;
});
if (element) {
element.active = true;
}
}
此函数接受name
变量,检查它是否存在于product
数组中并将其设置为活动状态。如果不是,您可能想要抛出异常。
用法:
setActive('a');