[英]Sort an array of objects based on a numeric key given as String
I have an an array with key-value pair, array columns are id and name. 我有一个具有键值对的数组,数组列是id和name。 I want to sort this array by id.
我想按ID对这个数组排序。
The id column value is of type string type but I want to sort them as numeric values. id列值是字符串类型,但我想将它们排序为数字值。
var items = [
{
"id": "165",
"name": "a"
},
{
"id": "236",
"name": "c"
},
{
"id": "376",
"name": "b"
},
{
"id": "253",
"name": "f"
},
{
"id": "235",
"name": "e"
},
{
"id": "24",
"name": "d"
},
{
"id": "26",
"name": "d"
}
]
items.sort((a,b)=>a.id-b.id)
Use Arrays.sort()
使用
Arrays.sort()
var arr = [{"id":"165","name":"a"},{"id":"236","name":"c"},{"id":"376","name":"b"},{"id":"253","name":"f"},{"id":"235","name":"e"},{"id":"24","name":"d"},{"id":"26","name":"d"}]; arr.sort((a,b)=> Number(a.id) - Number(b.id)); console.log(arr);
var items = [ { "id": "165", "name": "a" }, { "id": "236", "name": "c" }, { "id": "376", "name": "b" }, { "id": "253", "name": "f" }, { "id": "235", "name": "e" }, { "id": "24", "name": "d" }, { "id": "26", "name": "d" }]; items.sort((a, b) => Number(a.id) - Number(b.id)); console.log(items);
var items = [
{
"id": "165",
"name": "a"
},
{
"id": "236",
"name": "c"
},
{
"id": "376",
"name": "b"
},
{
"id": "253",
"name": "f"
},
{
"id": "235",
"name": "e"
},
{
"id": "24",
"name": "d"
},
{
"id": "26",
"name": "d"
}];
// for asscending
items.sort((a, b) => Number(a.id) - Number(b.id));
console.log(items);
// for descending
items.sort((a, b) => Number(b.id) - Number(a.id));
console.log(items);
The numeric strings can be compared in many ways. 数字字符串可以通过多种方式进行比较。 Suppose the strings are
a
and b
, 假设字符串是
a
和b
,
ab
parseInt(a) - parseInt(b)
- Reference - Java Script parseInt parseInt(a) - parseInt(b)
-参考-Java脚本parseInt +a - +b
- Reference - Unary +
operator to convert string to number +a - +b
a- +a - +b
参考- 一元+
运算符,用于将字符串转换为数字 Number(a) - Number(b)
- Reference - Javascript Global Number Object Number(a) - Number(b)
-参考-Javascript全局数字对象 var items = [{"id": "165","name": "a"},{"id": "236","name": "c"},{"id": "376","name": "b"},{"id": "253","name": "f"},{"id": "235","name": "e"},{"id": "24","name": "d"},{"id": "26","name": "d"}]; console.log(items.sort(function(a,b){ return parseInt(a.id)-parseInt(b.id) })); console.log(items.sort(function(a,b){ return a.id-b.id })); console.log(items.sort(function(a,b){ return +a.id - +b.id })); console.log(items.sort(function(a,b){ return Number(a.id)-Number(b.id) }));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.