JavaScript Array CSV 解析、排序以及按位置重新排序

标签 javascript arrays sorting csv multidimensional-array

我有一个长度为 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/

相关文章:

php - 为我的网站寻找标签脚本

javascript - 使 Semantic-ui 表格行像 Meteor JS 中的按钮一样可选择

javascript - 无法访问 JSON

javascript - Jquery数组通过ajax发送到php

javascript - jquery json返回数据加两个数

c# - 按数字对字符串列表进行排序(1,2,...,9,10 而不是 1,10,2)

javascript - Fotorama 箭头不显示

javascript - 如何摆脱 - 警告 : Each child in a list should have a unique "key" prop

sorting - 将多列堆叠为一列

ruby - 使用 Ruby 在数组中查找具有最大值的 N 个对象