Neh*_*rma -3 javascript arrays conditional-operator reactjs react-native
我在 JavaScript 中根据名称对数组进行排序,然后我根据 injoinDate对其进行排序,但不知何故它没有检查joiningDate.
不幸的是,我不能使用 if-else 条件 - 我只想使用三元运算符。
我的代码是这样的:
person.sort(((a, b) => (a.name > b.name) ? 1 : (a.joinDate > b.joinDate) ? 1 : -1));
Run Code Online (Sandbox Code Playgroud)
它正在对名称进行排序,但不对joinDate属性进行排序
我的清单是这样的:
{
"data": [
{
"id": "fdsf",
"name": "Julie",
"joinDate": "01/10/2019"
},
]
}
Run Code Online (Sandbox Code Playgroud)
您的比较功能并未正确涵盖所有可能的情况。
相反,您可以使用或(当名称相同时)像这样String.prototype.localeCompare()排序:namejoinDate
person.sort((a,b) =>
a.name.localeCompare(b.name) || a.joinDate.localeCompare(b.joinDate))
Run Code Online (Sandbox Code Playgroud)
我想,这种方法会更容易扩展到任意数量的排序参数。
测试应该是
if (a.name > b.name) {
return 1;
} else if (a.name < b.name) {
return -1;
} else if (a.joindate > b.joindate) {
return 1;
} else if (a.joindate < b.joindate) {
return -1;
} else {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
875 次 |
| 最近记录: |