【发布时间】:2020-08-22 18:30:04
【问题描述】:
我有一个对象数组,其中包含这样的子对象;
var array=[
{
"EmployeeName": "John",
"Experience": "12",
"data":{
"Technology":"SharePoint"
}
},
{
"EmployeeName": "Charles",
"Experience": "9",
"data":{
"Technology":"ASPNET"
}
},
{
"EmployeeName": "Jo",
"Experience": "3",
"data":{
"Technology":"PHP"
}
},
{
"EmployeeName": "Daine",
"Experience": "7",
"data":{
"Technology":"javascript"
}
},
{
"EmployeeName": "Zain",
"Experience": "6",
"data":{
"Technology":"Unity"
}
}
];
现在,我想根据子对象键“技术”对这个数组进行排序。我正在使用这里的示例:https://jsfiddle.net/KSPriyaranjan/4Lzr0qux
当它从基础对象中排序时,它就完成了这项工作,但是我如何让它工作:
function GetSortOrder(prop){
return function(a,b){
if( a[prop] > b[prop]){
return 1;
}else if( a[prop] < b[prop] ){
return -1;
}
return 0;
}
}
array.sort( GetSortOrder("data.Technology") );
document.write("<br><br> Sorted Technology Names : <br>");
for (var item in array) {
document.write("<br>"+array[item].Technology);
}
这会产生这个:
Sorted Technology Names :
undefined
undefined
undefined
undefined
希望有人可以在这件事上提供帮助,并在此先感谢 :-) 未定义
【问题讨论】:
-
a["data.Technology"]与a["data"]["Technology"]不同。
标签: javascript arrays sorting