Rumah > Soal Jawab > teks badan
想在下面这个json对象上实现:
1.末尾添加一组数据"事件4":{"排序":4};
2.按照"排序"的值排序.
var myObj = {
"事件2": {
"排序": 2
},
"事件3": {
"排序": 3
},
"事件1": {
"排序": 1
}
};
ps:这是分开的两个功能,不要写一起!
阿神2017-04-10 18:00:53
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 并不存在一种对象叫"JSON对象", 有的只是Javascript对象, 也就是看上去是这种键值对的形式的
不过Javascript对象是无序的, 所以你现在说排序可能是个伪命题, 也许你需要把你的问题改成, 期望按照那个"排序"的值进行输出, 那就还是有希望的
至于要加个值, 很简答:
var myobj = {
"事件2": {
"排序": 2
},
"事件3": {
"排序": 3
},
"事件1": {
"排序": 1
}
};
myobj['事件4'] = {
'hello': 'world'
}
大家讲道理2017-04-10 18:00:53
为了在浏览器上按照排序的值依次渲染,最好还是先将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
}
]
*/