我有一些特定的东西将被推入阵列(下面),我想按项目价格排序项目。我尝试使用sort
,但它不适合我。之后,我想循环该数组并检索项目名称和项目价格。排序数组
推项目到数组:array.push(itemName,itemPrice)
尝试使用sort
功能:
array.sort(function(a,b){
return b[1] - a[1]
});
我有一些特定的东西将被推入阵列(下面),我想按项目价格排序项目。我尝试使用sort
,但它不适合我。之后,我想循环该数组并检索项目名称和项目价格。排序数组
推项目到数组:array.push(itemName,itemPrice)
尝试使用sort
功能:
array.sort(function(a,b){
return b[1] - a[1]
});
编辑:与妮娜的评论表示赞同。改变比较功能
看起来你需要一个对象数组并定义你自己的比较函数进行排序。
所以你需要元素添加到阵列像这样:
array.push({itemName:name,itemPrice:price})
定义自定义比较函数
function compare(a,b) {
return a.itemPrice-b.itemPrice;
}
使用自定义功能
array.sort(compare)
你可以使用增量,没有两个比较的开销。 –
我想你想的元组(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到阵列
//排序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();
我希望这会帮助你;)
我想你想要做的是将物体不仅仅是值!
array.push({
name: itemName,
price: itemPrice
});
然后你就可以使用排序:
array.sort(function(a, b){
return b.price - a.price;
});
这里是一个示例代码,玩得开心!
var arr = [
\t {
\t \t "name": "Item1",
\t \t "price": 100,
\t },
\t {
\t \t "name": "Item2",
\t \t "price": 500,
\t },
\t {
\t \t "name": "Item3",
\t \t "price": 250,
\t },
\t {
\t \t "name": "Item4",
\t \t "price": 1000,
\t }
]
arr = arr.sort(function compare(a, b) {
if (a.price > b.price)
return 1;
if (a.price < b.price)
return -1;
return 0;
});
console.log(arr);
请加阵列为好。 –
你将不得不向我们展示数组数据是什么样的,所以我们可以看到如何正确分类。您的代码正在尝试对数组进行排序。 'array.push(itemName,itemPrice)'把两个连续的,单独的值放入数组中。它不会将数组推入数组中。为此,你需要'array.push([itemName,itemPrice])'。 – jfriend00