【发布时间】:2019-12-05 21:30:48
【问题描述】:
我有一个对象员工数组
{
"emp1": {
"BusinessPartnerFormattedName": "Aleksandra Lewandowski",
"EmpRoleCode": "BUP003",
"EmpRoleType": "Employee",
"EmployeeID": "E8000",
"isAssigned" : true,
"ObjectID": "00163E0E46241ED7A0EA0590D0655967"
},
"emp2": {
"BusinessPartnerFormattedName": "Aleksandra Lewandowski",
"EmpRoleCode": "BUP003",
"EmpRoleType": "Employee",
"EmployeeID": "E8000",
"isAssigned" : true,
"ObjectID": "00163E0E46241ED7A0EA0590D0655967"
},
"emp3": {
"BusinessPartnerFormattedName": "Aleksandra Lewandowski",
"EmpRoleCode": "BUP003",
"EmpRoleType": "Employee",
"EmployeeID": "E8000",
"isAssigned" : false,
"ObjectID": "00163E0E46241ED7A0EA0590D0655967"
},
"emp4": {
"BusinessPartnerFormattedName": " Lewandowski",
"EmpRoleCode": "BUP803",
"EmpRoleType": "Employee",
"EmployeeID": "BUP803",
"isAssigned" : false,
"ObjectID": "00163E0E46241ED7A0EA0590D0655967"
},
"emp5": {
"BusinessPartnerFormattedName": "Aleksandra",
"EmpRoleCode": "BUP043",
"EmpRoleType": "Employee",
"EmployeeID": "BUP043",
"isAssigned" : false,
"ObjectID": "00163E0E46241ED7A0EA0590D0655967"
},
"emp6": {
"BusinessPartnerFormattedName": "Eva Log",
"EmpRoleCode": "BUP0d03",
"EmpRoleType": "Employee",
"EmployeeID": "BUP0d03",
"isAssigned" : false,
"ObjectID": "00163E0E46241ED7A0EA0590D0655967"
}
}
我想把EmployeeID等于E8000的员工放在列表中first,比我想要isAssigned等于的员工true关注
到目前为止,我已经做到了:
var sortedItems = _.sortBy(items, function(item) {
return (item.isAssigned === true || item.EmployeeID === "E8000") ? 0 : 1;
});
但是如何确保带有EmployeeID 的emp 等于E8000 总是在最前面呢?
【问题讨论】:
-
你有超过三个项目吗?如果更多应该怎么办?
-
顺便说一句,您正在尝试对对象进行排序,因为该数组只有一项...
-
@NinaScholz 是的,我有 99 个项目,但我的代码是一个简单的示例
-
但正如 Nina 所说,您无法对对象进行排序。你的意思是一个对象数组吗? (没有这些
emp1、emp2等)键? -
@kinduser 是的对象数组,我做了一些更正(很抱歉造成混乱)
标签: javascript sorting lodash