gpt4 book ai didi

javascript - 以相应的 JavaScript 方式对相关数组进行排序

转载 作者:行者123 更新时间:2023-11-28 08:36:36 25 4
gpt4 key购买 nike

我正在尝试处理 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()],但我不知道如何对每个数组进行排序,以便排序后,weight[0] 和 amount[0] 引用相同的产品。

我的最终结果应该如下所示:

console.log(weight)   // [1,1.25,1.5]
console.log(quantity) // [4,2,3]

我用谷歌搜索了许多不同的短语并尝试了几种不同的方法。如果这个问题已经得到解答,或者这是一个基本问题,我深表歉意。我似乎无法独自克服这个障碍,非常感谢所有答案! :)

最佳答案

在将 quantityweight_each 分成两个未连接的数组之前,对 weight_each 上的 products 数组进行排序:

input = '{"products":[{"quantity":3,"weight_each":1.5},{"quantity":4,"weight_each":1},{"quantity":2,"weight_each":1.25}]}';

data = JSON.parse( input );

data.products.sort( function(a,b){return a.weight_each - b.weight_each; } );

for ( var i = 0; i < data.products.length; i++)
{
quantity[i] = data.products[i].quantity;
weight[i] = data.products[i].weight_each;
}

关于javascript - 以相应的 JavaScript 方式对相关数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21081626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com