下面的函數執行以下操作:修改下面的排序功能,所以它返回的數字
1)如果isDefault === true
和isDefault === false
,前者先行。
2)如果isDefault === true
和isDefault === true
按updatedAt
按降序排序。
3)如果isDefault === false
和isDefault === false
,按name
按升序排序。
function sortPanoramas (panoramas) {
panoramas.sort((a, b) => {
if (a.isDefault !== b.isDefault) return a.isDefault < b.isDefault
if (a.isDefault && b.isDefault) return a.updatedAt < b.updatedAt
if (!a.isDefault && !b.isDefault) return a.name > b.name
})
}
這個工作在Chrome,但不是在Safari瀏覽器,因爲有人告訴我,你應該在sort
函數返回的數字。
如何修改函數使其返回數字?
編輯:樣本數據:
[
{
"id": "CbU2Z5BZ9w",
"name": "a01",
"updatedAt": "2016-08-24T06:20:47.972Z",
"isDefault": true,
"index": 0
},
{
"id": "RdT5CvGLRg",
"name": "a02",
"updatedAt": "2016-08-24T06:21:22.126Z",
"isDefault": false,
"index": 1
},
{
"id": "eHyt1TYcBN",
"name": "a03",
"updatedAt": "2016-08-24T06:21:47.404Z",
"isDefault": false,
"index": 2
},
{
"id": "jUTmyn2TDR",
"name": "a04",
"updatedAt": "2016-08-24T06:26:29.591Z",
"isDefault": false,
"index": 3
},
{
"id": "VGXXNcBMcH",
"name": "a05",
"updatedAt": "2016-08-24T06:27:12.934Z",
"isDefault": false,
"index": 4
}
]
看看[在JavaScript中排序:不應該返回一個布爾值足以比較函數?](http://stackoverflow.com/q/24080785/1048572) – Bergi
@Nina Scholz好的,我添加了一些數據。 – alex