Javascript 对象顺序不正确
Javascript Object order incorrect
我有一个检索对象的函数。
此对象有一个 属性 和一个值。 属性 是数字,从“-30”开始一直到“50”
问题是,当我遍历此对象时,浏览器似乎将其排序为从“0”开始,而不是从“-30”的初始 属性 开始
我需要确保顺序与对象完全相同。
var colorOj = {
"-30":"#111","-29":"#131313", ..etc.., "0":"#333", ..etc..,
"50":"#555"
}
function makeList(object){
for (var i in object) {
console.log(i); // Returns 0,1,2,3,4,5
// I need a return of -30,-29,-28,..., 0, 1, 2 ...
}
}
makeList(colorObj);
正如@Teemu 所建议的,属性没有以任何特定顺序存储。但是您可以使用特定的排序功能以任何顺序打印它们。
代码
var obj = {};
for (var i = 5; i > -5; i--) {
obj[i * 10] = i * 10;
}
// Sort and get all keys...
var keys = Object.keys(obj).sort(function(a, b) {
return parseInt(a) - parseInt(b);
});
console.log(keys)
// Loop over keys to print values of each property
keys.forEach(function(item) {
console.log(item, obj[item]);
})
你可以这样做:
var colorOj = {
"-30":"#111","-29":"#131313", "0":"#333",
"50":"#555"
};
var keys = Object.keys(colorOj).sort(function(a,b){return a - b})
for(var i = 0; i < keys.length;i++){console.log(keys[i])}
这样你就可以获得对象中的每一个键。然后按照你喜欢的方式排序(javascript中的排序函数可以将比较函数作为参数 look -> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)
我有一个检索对象的函数。
此对象有一个 属性 和一个值。 属性 是数字,从“-30”开始一直到“50”
问题是,当我遍历此对象时,浏览器似乎将其排序为从“0”开始,而不是从“-30”的初始 属性 开始
我需要确保顺序与对象完全相同。
var colorOj = {
"-30":"#111","-29":"#131313", ..etc.., "0":"#333", ..etc..,
"50":"#555"
}
function makeList(object){
for (var i in object) {
console.log(i); // Returns 0,1,2,3,4,5
// I need a return of -30,-29,-28,..., 0, 1, 2 ...
}
}
makeList(colorObj);
正如@Teemu 所建议的,属性没有以任何特定顺序存储。但是您可以使用特定的排序功能以任何顺序打印它们。
代码
var obj = {};
for (var i = 5; i > -5; i--) {
obj[i * 10] = i * 10;
}
// Sort and get all keys...
var keys = Object.keys(obj).sort(function(a, b) {
return parseInt(a) - parseInt(b);
});
console.log(keys)
// Loop over keys to print values of each property
keys.forEach(function(item) {
console.log(item, obj[item]);
})
你可以这样做:
var colorOj = {
"-30":"#111","-29":"#131313", "0":"#333",
"50":"#555"
};
var keys = Object.keys(colorOj).sort(function(a,b){return a - b})
for(var i = 0; i < keys.length;i++){console.log(keys[i])}
这样你就可以获得对象中的每一个键。然后按照你喜欢的方式排序(javascript中的排序函数可以将比较函数作为参数 look -> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)