根据数组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' }
};
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' }
};
这里的keys的顺序是不变的 这里的问题就是将obj按照300 200 100 400重新排一下,返回一个新的obj
var arr=[];for(var i=0;i<keys.length;i++ ){arr.push(obj[keys[i]])} 这样可以新生成一个数组
这个问题要求对象的属性名不能是纯数值,纯数值的属性只能以数值大小排列。
输出对象时也不要用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));