【发布时间】:2016-10-21 14:19:30
【问题描述】:
假设你有一个这样的集合:
var sizes = [
{label: 'Small', instock: true, onsale: true},
{label: 'Medium', instock: false, onsale: true},
{label: 'Large', instock: false, onsale: true},
];
请注意,此处的集合对于问题而言非常简单,但在实际用例中,对象可能会更大、更复杂,并且会重复多次(因此解决方案需要如下尽可能高效)。
我需要将所有没有库存的商品的库存更新为真实。到目前为止,这是我尝试过的:
var index = _.findIndex(sizes, instock:false);
sizes[index].instock = true;
但它只更新 1 个项目,在 MySQL 中,您可以在 1 行代码中执行类似的操作,我想尝试找出如何在 Lodash 或 Plain Javascript 中执行类似操作(使用 1 个函数或 1 行代码),因为我必须经常做这样的事情,而且在纯 javascript 中通过手动迭代整个集合的循环来完成它变得非常麻烦。
MySQL 等价物类似于:
UPDATE sizes instock=true WHERE instock=false
我想在 Lodash 或普通 Javascript 中做类似的事情,无论是最简单和最有效的。
我想弄清楚的另一件事是这个 MySQL 等价物。
UPDATE sizes onsale=false WHERE onsale=true AND instock=false
【问题讨论】:
-
所有库都将有效地循环集合。
标签: javascript lodash