簡體   English   中英

對具有多個對象且沒有鍵的 JSON 數組進行排序

[英]Sorting a JSON array with multiple objects and no keys

我有以下數組,它有多個對象但沒有鍵。

const result = [
  ["Joe", "1", "2.22%", "$3,000.00"], 
  ["Tom", "1", "2.22%", "$4,650.00"], 
  ["Ryan", "4", "4.44%", "$18,925.00"], 
  ["Jordan", "2", "4.44%", "$3,300.00"], 
  ["Fred", "0", "0.00%", "$0.00"], 
  ["Steve", "0", "0.00%", "$0.00"]
]

我正在嘗試按第四個對象排序,但我很難弄清楚這一點。 是否有一種快速簡便的方法可以在不更改數組的情況下完成此操作?

我想返回按降序排列的第 4 個對象排序的結果。

return {result: result[0][0] + ": " + result[0][3] + '\n' + result[1][0] + ': ' + result[1][3] + '\n' + result[2][0] + ': ' + result[2][3] + '\n' + result[3][0] + ': ' + result[3][3] + '\n' + result[4][0] + ': ' + result[4][3] + '\n' + result[5][0] + ': ' + result[5][3] };

因此返回的結果如下所示:

瑞安:18,925.00 美元

湯姆:4,650.00 美元

喬丹:3,300.00 美元

喬:3,000.00 美元

弗雷德:$0.00

史蒂夫:0.00 美元

您可以獲得一個沒有不需要的字符作為數字的規范化值,並返回用於排序的增量。

 const normalize = s => s.replace(/[^\\d.]/g, ''); var array = [["Joe", "1", "2.22%", "$3,000.00"], ["Tom", "1", "2.22%", "$4,650.00"], ["Ryan", "4", "4.44%", "$18,925.00"], ["Jordan", "2", "4.44%", "$3,300.00"], ["Fred", "0", "0.00%", "$0.00"], ["Test", "0", "0.00%", "$0.00"]], result = array .sort((a, b) => normalize(b[3]) - normalize(a[3])) .map(({ [0]: name, [3]: amount }) => [name, amount]); console.log(result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM