lodash排序字符串数组的数组

时间:2016-08-08 20:20:10

标签: arrays underscore.js lodash

我有以下数据:

[["Balin Sankar","10","English","91.1408767700195"],
["Balin Sankar","10","Maths","88.1268997192383"],
["Balin Sankar","10","Science","90.3445739746094"],
["Balin Sankar","10","History","87.1235580444336"],
["Balin Sankar","10","Geography","88.2675628662109"],
["Balin Sankar","10","Civics","89.6238479614258"],
["Balin Sankar","10","Economics","86.5236434936523"]]

我需要根据第4个值

对这些进行排序

2 个答案:

答案 0 :(得分:2)

您可以将lodash的sortBy函数传递给选择列表中第四项的函数:

Int => A

var result = _.sortBy(data, item => parseFloat(item[3]))
var data = [["Balin Sankar","10","English","91.1408767700195"],
["Balin Sankar","10","Maths","88.1268997192383"],
["Balin Sankar","10","Science","90.3445739746094"],
["Balin Sankar","10","History","87.1235580444336"],
["Balin Sankar","10","Geography","88.2675628662109"],
["Balin Sankar","10","Civics","89.6238479614258"],
["Balin Sankar","10","Economics","86.5236434936523"]]

var result = _.sortBy(data, item => parseFloat(item[3]))

var output = document.getElementById('result')

_.each(result, item => output.textContent += (item[2] + ' ' + item[3] + '\n'))

答案 1 :(得分:1)

你不需要为此付出代价。可以使用常规sort

来实现



var array = [["Balin Sankar","10","English","91.1408767700195"],
["Balin Sankar","10","Maths","88.1268997192383"],
["Balin Sankar","10","Science","90.3445739746094"],
["Balin Sankar","10","History","87.1235580444336"],
["Balin Sankar","10","Geography","88.2675628662109"],
["Balin Sankar","10","Civics","89.6238479614258"],
["Balin Sankar","10","Economics","86.5236434936523"]];

array.sort(function(a, b) {
  return a[3] - b[3];
});

console.log(array);