我有一个长度为 X 的数组,在本例中为 8。每个位置都是一个包含 3 个值的 CSV。我正在尝试按 csv 中的第三个值对其进行排序。
我的数组
array[0] = "1,17,28";
array[1] = "2,1,5";
array[2] = "3,37,48";
array[3] = "4,9,15";
array[4] = "5,4,14";
array[5] = "6,6,17";
array[6] = "7,99,110";
array[7] = "8,5,16";
新数组在排序后应如何显示:
newArray[0] = "2,1,5";
newArray[1] = "5,4,14";
newArray[2] = "4,9,15";
newArray[3] = "8,5,16";
newArray[4] = "6,6,17";
newArray[5] = "1,17,28";
newArray[6] = "3,37,48";
newArray[7] = "7,99,110";
为了让这个工作空间正常工作,我完全毁掉了我的工作空间。
如有任何建议,我们将不胜感激!
最佳答案
你可以做Array.sort()为此,
var arr = [
'1,17,28',
'2,1,5',
'3,37,48',
'4,9,15',
'5,4,14',
'6,6,17',
'7,99,110',
'8,5,16'
];
arr.sort(function(a, b) {
var x = a.split(',')[2];
var y = b.split(',')[2];
return x - y;
});
// Returns ["2,1,5", "5,4,14", "4,9,15", "8,5,16", "6,6,17", "1,17,28", "3,37,48", "7,99,110"]
编辑:
如果您想保持旧数组不受影响,只需额外添加即可。 (ES6语法)
[...arr].sort(function(a, b) {
var x = a.split(',')[2];
var y = b.split(',')[2];
return x - y;
});
关于JavaScript Array CSV 解析、排序以及按位置重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38625289/