排序数字数组

时间:2017-04-07 20:17:21

标签: javascript node.js

我有一些特定的东西将被推入阵列(如下),我想按项目价格对项目进行排序。我尝试使用sort,但它对我不起作用。之后,我想循环该数组并检索项目名称和项目价格。

将项目推送到数组:array.push(itemName,itemPrice)

尝试使用sort功能:

array.sort(function(a,b){
    return b[1] - a[1]
});

5 个答案:

答案 0 :(得分:1)

我认为你想将元组(itemName,itemPrice)推送到数组,这可以通过以下两种方式完成:

array.push([itemName, itemPrice])

array.push({ itemName: itemName, itemPrice: itemPrice })
// and instead of accessing a[1] or b[1], access a.itemPrice and b.itemPrice respectively.

array.push(x,y)只需将两个不同的元素x和y附加到数组

答案 1 :(得分:1)

我认为你想要做的就是推送对象而不仅仅是价值!

array.push( { 
    name: itemName, 
    price: itemPrice 
} );

然后您可以使用以下方式进行排序:

array.sort(function(a, b){
    return b.price - a.price;
});

答案 2 :(得分:1)

编辑:同意Nina的评论。改变比较功能

看起来你需要一个对象数组并定义你自己的比较函数进行排序。

所以你需要像这样添加元素到数组:

SashForm

定义自定义比较功能

array.push({itemName:name,itemPrice:price})

使用自定义功能

function compare(a,b) {
  return a.itemPrice-b.itemPrice;
}

答案 3 :(得分:0)

//按BY键(和值)排序。

    int[] keys = { 4, 7, 2, 0 };
    int[] values = { 1, 2, 3, 4 };
    Array.Sort(keys, values);
    foreach (int key in keys)
    {
        Console.Write(key);
        Console.Write(' ');
    }
    Console.WriteLine();
    foreach (int value in values)
    {
        Console.Write(value);
        Console.Write(' ');
    }
    Console.WriteLine();

我希望这会对你有帮助;)

答案 4 :(得分:0)

这是一个示例代码,玩得开心!

db()