我有一些特定的東西將被推入陣列(下面),我想按項目價格排序項目。我嘗試使用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