想在下面这个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按照新的数据结构添加就好了。