想在下面这个json对象上实现:
1.末尾添加一组数据"事件4":{"排序":4};
2.按照"排序"的值排序.
var myObj = {
"事件2": {
"排序": 2
},
"事件3": {
"排序": 3
},
"事件1": {
"排序": 1
}
};
ps:这是分开的两个功能,不要写一起!
想在下面这个json对象上实现:
1.末尾添加一组数据"事件4":{"排序":4};
2.按照"排序"的值排序.
var myObj = {
"事件2": {
"排序": 2
},
"事件3": {
"排序": 3
},
"事件1": {
"排序": 1
}
};
ps:这是分开的两个功能,不要写一起!
为了在浏览器上按照排序的值依次渲染,最好还是先将Object转为一个Array,后续的sort和add按照新的数据结构添加就好了。
var source = {
"事件2": {
"排序": 2
},
"事件3": {
"排序": 3
},
"事件1": {
"排序": 1
}
};
var sorted = (function sort(source){
return Object.keys(source).map(function(key){
return {
event:key,
order:source[key]['排序'],
}
}).sort(function(a,b){
return a.order - b.order;
});
})(source);
/**
[
{
"event": "事件1",
"order": 1
},
{
"event": "事件2",
"order": 2
},
{
"event": "事件3",
"order": 3
}
]
*/
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 并不存在一种对象叫"JSON对象", 有的只是Javascript对象, 也就是看上去是这种键值对的形式的
不过Javascript对象是无序的, 所以你现在说排序可能是个伪命题, 也许你需要把你的问题改成, 期望按照那个"排序"的值进行输出, 那就还是有希望的
至于要加个值, 很简答: