我有一个具有以下代码段的 JS 对象:
{
"foo": "bar",
"baz": [
{
"order": 2,
"fruit": "banana"
},
{
"order": 1,
"fruit": "apple"
},
{
"order": 3,
"fruit": "peach"
},
]
}
我的目标是能够遍历“baz”中的所有对象,但按照它们的“order”属性的顺序,而不是存储在对象中的顺序。“baz”中对象的顺序可以/会经常改变,所以以前对它们进行排序或按照它们需要的顺序存储它们不是一种选择。
纯 JS 或 jQuery 答案都是可以接受的。
您好,您必须对对象进行排序。只需使用.sort
数组即可。
这是一个示例:
var obj = {
"foo": "bar",
"baz": [
{
"order": 2,
"fruit": "banana"
},
{
"order": 1,
"fruit": "apple"
},
{
"order": 3,
"fruit": "peach"
},
]
}
// get property
var arr = obj["baz"];
// may copy array
var counter = arr.length;
var arrCopy = new Array(counter);
while(counter--) {
arrCopy[counter] = arr[counter];
}
// sort
arrCopy.sort(function(a, b) { return a.order - b.order});
// iterate it
arrCopy.forEach(function(v) {
console.log(v.fruit);
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句