我有一组对象正在尝试排序,但它似乎不起作用。数组中的某些对象具有orderNum
我要排序的属性。但并不是所有的物体都具有这个属性。
我想要带有以下内容的对象orderNum
要排序到数组顶部位置的属性。
这是我尝试过的小提琴:http://jsfiddle.net/7D8sN/ http://jsfiddle.net/7D8sN/
这是我的 JavaScript:
var data = {
"attributes": [
{
"value": "123-456-7890",
"name": "phone"
},
{
"value": "[email protected] /cdn-cgi/l/email-protection",
"name": "email"
},
{
"value": "Gotham",
"name": "city",
"orderNum": 1
},
{
"value": "12",
"name": "ID"
},
{
"value": "Batman",
"name": "Super Hero",
"orderNum": 2
}
]
};
data.attributes.sort( function (a, b) {
if (a.orderNum < b.orderNum) {
return -1;
}
if (a.orderNum > b.orderNum) {
return 1;
}
return 0;
});
console.log(data);
检查该属性是否存在于您的排序函数中。
data.attributes.sort( function (a, b) {
if ((typeof b.orderNum === 'undefined' && typeof a.orderNum !== 'undefined') || a.orderNum < b.orderNum) {
return -1;
}
if ((typeof a.orderNum === 'undefined' && typeof b.orderNum !== 'undefined') || a.orderNum > b.orderNum) {
return 1;
}
return 0;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)