什么';使用Javascript查找和修改数组中对象的最佳方法是什么?
我有一系列这种款式:什么';使用Javascript查找和修改数组中对象的最佳方法是什么?,javascript,arrays,lodash,Javascript,Arrays,Lodash,我有一系列这种款式: var productsList = [ { id: 'as5', name: 'Coca-Cola', price: 17.5, unit: 'Botellas', quantity: 23 }, { id: 'q7s', name: 'Queso', price: 34.8, unit:
var productsList = [
{
id: 'as5',
name: 'Coca-Cola',
price: 17.5,
unit: 'Botellas',
quantity: 23
},
{
id: 'q7s',
name: 'Queso',
price: 34.8,
unit: 'Kilos',
quantity: 6
},
{
id: 'pa5',
name: 'Pan',
price: 3.5,
unit: 'Piezzas',
quantity: 100
},
{
id: 'capu2',
name: 'Aceite',
price: 21,
unit: 'Botella',
quantity: 10
},
{
id: 'bon4',
name: 'Agua Bonafont',
price: 25,
unit: 'Garrafón',
quantity: 12
},
{
id: 'tun1',
name: 'Atún',
price: 11,
unit: 'Lata',
quantity: 30
},
];
我需要根据其id查找数组位置,并将quantity属性减量1
这就是我使用lodash 3.10所做的:
var product = _.find(productsList, {id: 'tun1'});
product.quantity--;
productsList.splice(_.findIndex(productsList, {id: 'tun1'}), 1, product);
但我不喜欢必须执行两个操作,一个是检索修改的数组元素,另一个是获取其位置
然后我甚至必须使用splice,它将再次迭代
ES5 JS的最佳方式是什么?最后一步是不必要的。您似乎不了解Javascript中引用是如何工作的(?)
做你想做的。最后一步是不必要的。您似乎不了解Javascript中引用是如何工作的(?)
做你想做的事。你已经做到了。最后一行是不必要的,您可以这样写:
_.find(productsList, {id: 'tun1'}).quantity--;
你做到了。最后一行是不必要的,您可以这样写:
_.find(productsList, {id: 'tun1'}).quantity--;
你不需要最后一行。你已经改变了对象。最后一行所做的就是用不必要的对象本身替换对象。您不需要最后一行。你已经改变了对象。最后一行所做的就是将对象本身替换为不必要的对象。请您对此类引用进行更多扩展,好吗?在这种情况下,
\uuuu.find(productsList,{id:'tun1'})。quantity--代码>做这个工作?但是,这两个步骤更为稳健,因为find可能找不到合适的值。请您对此类引用进行更多扩展,好吗?在这种情况下,\uuuu.find(productsList,{id:'tun1'})。quantity--代码>做这个工作?然而,这两个步骤更稳健,因为find可能找不到合适的值。