簡體   English   中英

根據指定為String的數字鍵對對象數組進行排序

[英]Sort an array of objects based on a numeric key given as String

我有一個具有鍵值對的數組,數組列是id和name。 我想按ID對這個數組排序。

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)

使用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);

數字字符串可以通過多種方式進行比較。 假設字符串是ab

  1. ab
  2. parseInt(a) - parseInt(b) -參考-Java腳本parseInt
  3. +a - +b a- +a - +b參考- 一元+運算符,用於將字符串轉換為數字
  4. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM