JavaScriptで2次元配列をソートしたいです。
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>test</title> 6 <script type="text/javascript" src="test.js"></script> 7</head> 8<body> 9 JavaScript ソートテスト 10</body> 11</html>
JavaScript
1// test.js 2window.onload = function(){ 3 var list = testSort([["aaa",10],["bbb",20],["ccc",""],["ddd",30],["eee",40]]); 4 console.log(list); 5 var list = testSort([["aaa",100],["bbb",10],["ccc",""],["ddd",30],["eee",40]]); 6 console.log(list); 7}; 8 9function testSort(list) { 10 list.sort(function(a, b){ 11 if (parseFloat(a[1]) > parseFloat(b[1])) return -1; 12 if (parseFloat(a[1]) < parseFloat(b[1])) return 1; 13 return 0; 14 }); 15 return list; 16}
[["文字列",数値]...["文字列",数値]]という内容の2次元配列を作成しました。
これを2番目の要素である数値の降順でソートしたいです。
もし、数値が空の場合は空の部分は一番後ろになるようにソートしたいです。
[["aaa",10],["bbb",20],["ccc",""],["ddd",30],["eee",40]]の場合は期待通り、
[["eee",40],["ddd",30],["bbb",20],["aaa",10],["ccc",""]]と、空の部分が最後になっています。
しかし、
[["aaa",100],["bbb",10],["ccc",""],["ddd",30],["eee",40]]の場合は、
[["aaa",100],["bbb",10],["ccc",""],["eee",40],["ddd",30]]となり、
空の位置が変化していません。
[["aaa",100],["eee",40],["ddd",30],["bbb",10],["ccc",""]]となるようにソートさせたいです。
2次元配列で、基本的には数値の降順でソートし、空白がある場合には、空白が最後になるようにソートするにはどのようにすればよろしいでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/20 09:45
2020/02/21 11:11