要按照人工顺序对JavaScript数组进行排序,可以使用Array.sort()方法并传入一个自定义的排序函数作为参数。
以下是一个示例代码:
// 定义一个人工顺序的数组
var manualOrder = ['b', 'c', 'a', 'd'];
// 定义要排序的数组
var arr = ['a', 'b', 'c', 'd'];
// 使用Array.sort()方法进行排序,传入一个自定义的排序函数
arr.sort(function(a, b) {
// 获取a和b在人工顺序数组中的索引
var indexA = manualOrder.indexOf(a);
var indexB = manualOrder.indexOf(b);
// 如果a在人工顺序数组中的索引小于b在人工顺序数组中的索引,则a应该排在b之前
if (indexA < indexB) {
return -1;
}
// 如果a在人工顺序数组中的索引大于b在人工顺序数组中的索引,则b应该排在a之前
else if (indexA > indexB) {
return 1;
}
// 如果a和b在人工顺序数组中的索引相同,则它们的顺序保持不变
else {
return 0;
}
});
console.log(arr); // 输出:['b', 'c', 'a', 'd']
在上述示例中,我们定义了一个人工顺序的数组manualOrder
,然后使用Array.sort()
方法对待排序的数组arr
进行排序。在自定义的排序函数中,我们通过indexOf()
方法获取元素在人工顺序数组中的索引,并根据索引的大小来确定元素的顺序。最后,我们输出排序后的数组arr
,结果为['b', 'c', 'a', 'd']
。