根据数组keys中的值,将对象obj的值进行排序,并返回新的对象。谢谢!var obj = {
        100: { name: '100' },
        200: { name: '200' },
        300: { name: '300' },
        400: { name: '400' }
};
var keys = [ 300, 100, 200, 400];
结果:
var obj = {
        300: { name: '300' },
        100: { name: '100' },
        200: { name: '200' },
        400: { name: '400' }
};

解决方案 »

  1.   

    不需要吧  先把keys 排序,根据keys 的顺序直接从对象中取  应该能达到你想要的效果!  对象时无序的
      

  2.   

    这里的keys的顺序是不变的   这里的问题就是将obj按照300 200 100 400重新排一下,返回一个新的obj
      

  3.   


    这里的keys的顺序是不变的   这里的问题就是将obj按照300 200 100 400重新排一下,返回一个新的obj
      

  4.   

    对象时无序的! 不能排序!
    var arr=[];for(var i=0;i<keys.length;i++ ){arr.push(obj[keys[i]])}  这样可以新生成一个数组
      

  5.   


    这个问题要求对象的属性名不能是纯数值,纯数值的属性只能以数值大小排列。
    输出对象时也不要用console.log()输出,用console.log()输出的属性是固定按字符串大小顺序排列的。var obj = {
            "n100": { name: '100' },
            "n200": { name: '200' },
            "n300": { name: '300' },
            "n400": { name: '400' }
    };
    var keys = [ "n300", "n100", "n200", "n400"];
    var newobj = {};
    keys.forEach(function(v){
    newobj[v] = obj[v]
    });
    alert(JSON.stringify(newobj,null,4));