首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><h5>json根据基于值的</h5>排序升序

<h5>json根据基于值的</h5>排序升序
EN

Stack Overflow用户
提问于 2020-11-12 06:18:39
回答 2查看 49关注 0票数 0

这里对Json数据进行了排序:

代码语言:javascript
复制
{ designer : 5, tester :8,developer : 10, backend :7 }

我想按以下顺序排序

代码语言:javascript
复制
{ developer :10, tester :8, backend:7, designer :5 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-12 06:33:53

为了对JSON对象进行排序,我们必须借助数组。数组保持插入顺序。此外,它还提供了原生sort()方法来对数组元素进行排序。

在sortByKey()函数后面,将JSON对象作为输入并返回按键排序的JSON。

代码语言:javascript
复制
var data = [
{ designer : 5, tester :8,developer : 10, backend :7 }
]

function sortByValue(jsObj){
  var sortedArray = [];
    for(var i in jsObj)
    {
      sortedArray.push([i,jsObj[i]]);
    }
    sortedArray.sort(function(k,v){ return k[1] - v[1]});
    sortedArray.reverse();
}

var jsObj = {};
jsObj.designer = 5
jsObj.tester = 8
jsObj.developer = 10
jsObj.backend = 7

var sortedbyValueJSONArray = sortByValue(jsObj);
console.table(sortedbyValueJSONArray);

我们将从JSON对象创建jsonValue,jsonKey的jsonKey。然后,我们将使用sort()函数对JSON进行排序。请看下面的例子。

代码语言:javascript
复制
------------------------------
|    0    | 10 | 'developer' |
|    1    | 5  | 'designer'  |
|    2    | 7  |  'backend'  |
|    3    | 8  |  'tester'   |
票数 1
EN

Stack Overflow用户

发布于 2020-12-10 01:31:29

如果数据的顺序与您的情况相关,则应该使用数组,而不是对象。

例如:

代码语言:javascript
复制
[
  { "name": "developer", "value": 10 },
  { "name": "tester", "value": 8 },
  { "name": "backend", "value": 7},
  { "name": "designer", "value": 5 }
]

排列数组元素的顺序与JSON.parse(data).sort(({value: a}, {value: b}) => b - a)一样简单(在JavaScript、ES6中)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64798864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档