我有一个检索对象的函数。
此对象具有属性和值。该属性为数字,从“-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);
答案 0 :(得分:2)
根据@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]);
})

答案 1 :(得分:0)
你可以这样做:
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中的排序函数可以将比较函数作为参数外观 - &gt; https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)