3 回答
TA贡献1842条经验 获得超12个赞
对属性键进行迭代的所有方法都是按照相同的顺序进行的:
首先,所有数组索引,数字排序。 然后按照创建的顺序,所有字符串键(不是索引)。 然后所有的符号,按照它们被创造的顺序。
const unordered = {
'b': 'foo',
'c': 'bar',
'a': 'baz'
};
console.log(JSON.stringify(unordered));
// → '{"b":"foo","c":"bar","a":"baz"}'
const ordered = {};
Object.keys(unordered).sort().forEach(function(key) {
ordered[key] = unordered[key];
});
console.log(JSON.stringify(ordered));
// → '{"a":"baz","b":"foo","c":"bar"}'
var
const
TA贡献1794条经验 获得超7个赞
JavaScript对象1没有命令。尝试“整理”它们是毫无意义的。如果要迭代对象的属性,可以对键进行排序,然后检索相关的值:
var myObj = {
'b': 'asdsadfd',
'c': 'masdasaf',
'a': 'dsfdsfsdf'
},
keys = [],
k, i, len;
for (k in myObj) {
if (myObj.hasOwnProperty(k)) {
keys.push(k);
}
}
keys.sort();
len = keys.length;
for (i = 0; i < len; i++) {
k = keys[i];
console.log(k + ':' + myObj[k]);
}
Object.keys
var myObj = {
'b': 'asdsadfd',
'c': 'masdasaf',
'a': 'dsfdsfsdf'
},
keys = Object.keys(myObj),
i, len = keys.length;
keys.sort();
for (i = 0; i < len; i++) {
k = keys[i];
console.log(k + ':' + myObj[k]);
}
TA贡献2080条经验 获得超4个赞
function sortObject(obj) { return Object.keys(obj).sort().reduce(function (result, key) { result[key] = obj[key]; return result; }, {});}
function sortObject(o) { return Object.keys(o).sort().reduce((r, k) => (r[k] = o[k], r), {});}
Object.keys
obj
o
.reduce
添加回答
举报