【发布时间】:2018-03-28 15:36:49
【问题描述】:
我需要按如下所示的特定顺序对数据进行排序。
const sortBy = ['b','a','c','e','d']
const data = ['a','d','e']
我知道如何按升序/降序排序
console.log(data.sort((a, b) => a > b)) //["a", "d", "e"]
console.log(data.sort((a, b) => a < b)) //["e", "d", "a"]
但是是否可以使用.sort 按特定顺序排序?
例如,低于我想要的订单是sortBy
我目前正在通过在我的排序数组和我的数据之间创建一个公共项目数组来实现这一点。
const commonItems = getCommonItemsInArrays(sortBy,data)
console.log(commonItems.map(item => item)) //["a", "e", "d"]
function getCommonItemsInArrays(array1,array2){
return array1.filter(n => array2.indexOf(n) >= 0)
}
这似乎工作正常,但我想知道是否有办法通过sort 处理这个问题?
【问题讨论】:
-
“我知道如何按升序/降序排序” - 你确定吗?排序回调不应该返回布尔值......无论如何,
data项目是否保证在sortBy数组中?
标签: javascript arrays sorting ecmascript-6