在Express中编辑全局数组

我想更改从应用程序本地variables的数组中的一个项目,我不知道如何做到这一点

这是我所设定的全球性

app.locals.products=[{name: 'a',url: '/a' }, {name: 'b',url: '/b' }, {name: 'c',url: '/c' },... 

我想编辑它们,并从路线设置有效的产品,并做这样的事情

  products:[{name: 'a',url: '/a' active:true}], 

但是当我这样做,它会删除所有其他项目,并只设置我写的产品。 有没有办法只编辑我需要的一个,并保持其余的不变?

您可以使用数组查找function来查找产品数组中的特定项目并对其进行编辑。

 function setActive(name) { var element = products.find(function(product) { return product.name === name; }); if (element) { element.active = true; } } 

该函数使用namevariables,检查它是否存在于product数组中并将其设置为活动状态。 如果不是的话,你可能想抛出一个exception。

用法:

 setActive('a');