84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
想在下面这个json对象上实现:1.末尾添加一组数据"事件4":{"排序":4};2.按照"排序"的值排序.
var myObj = { "事件2": { "排序": 2 }, "事件3": { "排序": 3 }, "事件1": { "排序": 1 } };
ps:这是分开的两个功能,不要写一起!
人生最曼妙的风景,竟是内心的淡定与从容!
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 并不存在一种对象叫"JSON对象", 有的只是Javascript对象, 也就是看上去是这种键值对的形式的
不过Javascript对象是无序的, 所以你现在说排序可能是个伪命题, 也许你需要把你的问题改成, 期望按照那个"排序"的值进行输出, 那就还是有希望的
至于要加个值, 很简答:
var myobj = { "事件2": { "排序": 2 }, "事件3": { "排序": 3 }, "事件1": { "排序": 1 } }; myobj['事件4'] = { 'hello': 'world' }
为了在浏览器上按照排序的值依次渲染,最好还是先将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 } ] */
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 并不存在一种对象叫"JSON对象", 有的只是Javascript对象, 也就是看上去是这种键值对的形式的
不过Javascript对象是无序的, 所以你现在说排序可能是个伪命题, 也许你需要把你的问题改成, 期望按照那个"排序"的值进行输出, 那就还是有希望的
至于要加个值, 很简答:
为了在浏览器上按照排序的值依次渲染,最好还是先将Object转为一个Array,后续的sort和add按照新的数据结构添加就好了。