【发布时间】:2014-01-12 23:23:28
【问题描述】:
我正在尝试处理 JSON 对象并进行数学计算以计算重量。订单在我的算法中很重要,但 JSON 对象中的产品顺序会按照客户将它们添加到购物车的顺序传递给我。我需要以相同的方式对多个属性进行排序。
在以下示例中,客户在“错误”(1.5,1,1.25) 订单中添加了产品,因此 object.products 如下所示:
"products":[
{
"quantity": 3,
"weight_each": 1.5
},
{
"quantity": 4,
"weight_each": 1
},
{
"quantity": 2,
"weight_each": 1.25
}
我的第一步是将这些对象添加到对键盘更友好的数组中:
for (var i = 0; i < object.products.length; i++)
{
quantity[i] = object.products[i].quantity;
weight[i] = object.products[i].weight_each;
}
如前所述,我的算法要求产品按重量(升序)排序。我知道如何对每个数组进行独立排序 [weight.sort()],但我不知道如何对每个数组进行排序,以便在排序后,权重 [0] 和数量 [0] 引用相同的产品。
我的最终结果应该是这样的:
console.log(weight) // [1,1.25,1.5]
console.log(quantity) // [4,2,3]
我用谷歌搜索了许多不同的短语并尝试了几种不同的方法。如果这已经得到回答,或者这是一个基本问题,我深表歉意。我似乎无法独自克服这个障碍,非常感谢所有答案! :)
【问题讨论】:
-
我不知道这是否重要,但是您发布的可能重复的链接并不能解决我的问题,而 MT0 的答案可以。
标签: javascript arrays json sorting