javascript - 根据字段对 Json 数据进行排序

标签 javascript ecmascript-6 underscore.js lodash

我有一个 Json 数据,需要在显示之前对其进行排序。我的 Json 如下。我需要根据 ColumnLocation 对它们进行排序。

[{
  "Name": "PieChart",
  "Id": "1",
  "ColumnLocation": "0",
  "RowLocation": "0"
}, {
  "Name": "Calendar",
  "Id": "2",
  "ColumnLocation": "1",
  "RowLocation": "0"
}, {
  "Name": "FavouriteFilter",
  "Id": "3",
  "ColumnLocation": "2",
  "RowLocation": "0"
}, {
  "Name": "FilterResults",
  "Id": "4",
  "ColumnLocation": "0",
  "RowLocation": "1"
}, {
  "Name": "Watched",
  "Id": "5",
  "ColumnLocation": "1",
  "RowLocation": "1"
}]

即排序后的数组应该具有以下方式的项目

col : 0, row 0
col : 0, row 1
col : 1, row 0
col : 1, row 1

最佳答案

不需要lodash/下划线。您可以使用Array.prototype.sort : 由于您的值是字符串,因此您必须首先将它们解析为数字,然后进行比较:

let a = [{"Name":"PieChart","Id":"1","ColumnLocation":"0","RowLocation":"0"},{"Name":"Calendar","Id":"2","ColumnLocation":"1","RowLocation":"0"},{"Name":"FavouriteFilter","Id":"3","ColumnLocation":"2","RowLocation":"0"},{"Name":"FilterResults","Id":"4","ColumnLocation":"0","RowLocation":"1"},{"Name":"Watched","Id":"5","ColumnLocation":"1","RowLocation":"1"}]

let sorted = a.sort((a, b) => parseInt(a.ColumnLocation) - parseInt(b.ColumnLocation));

console.log(sorted);

关于javascript - 根据字段对 Json 数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43398137/

相关文章:

javascript - underscore.js _.values 方法颠倒顺序

javascript - 使用 underscore.js 展平对象的 javascript 数组

javascript - 什么是 (function($) {})(jQuery);意思是?

JavaScript 调试在 Visual Studio 2010 中不起作用

JavaScript6 : adding element (key, 值)到 ES6 映射

javascript - ECMAScript : Where can we find specification about accessibility of let/const variables

javascript - Gulp 和 Babel : Error: Cannot find module

javascript - UnderscoreJS 模板转义 JS 运算符

javascript - 禁用编码html的输入

javascript - 我如何为 :tel URL 应用已访问的伪类