javascript - json排序的问题
黄舟
黄舟 2017-04-10 17:58:53
0
2
533

想在下面这个json对象上实现:
1.末尾添加一组数据"事件4":{"排序":4};
2.按照"排序"的值排序.

var myObj = {
    "事件2": {
        "排序": 2
    },
    "事件3": {
        "排序": 3
    },
    "事件1": {
        "排序": 1
    }
};

ps:这是分开的两个功能,不要写一起!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

reply all(2)
阿神

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
    }
]
*/
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!