要按照特定的索引重新排序数组,可以使用 JavaScript 中的sort()
方法,结合自定义的比较函数来实现。以下是一个示例代码:
const arr = ['A', 'B', 'C', 'D', 'E'];
const indexOrder = [3, 1, 4, 0, 2];
arr.sort((a, b) => {
const indexA = indexOrder.indexOf(arr.indexOf(a));
const indexB = indexOrder.indexOf(arr.indexOf(b));
return indexA - indexB;
});
console.log(arr);
在上述示例中,我们有一个数组arr
和一个特定的索引顺序indexOrder
。我们使用sort()
方法,将自定义的比较函数传递给它。
比较函数中,我们根据arr
中元素的索引,通过indexOf()
方法获取它们在indexOrder
中的索引。然后,我们将这两个索引进行比较,并将结果返回给sort()
方法。
sort()
方法会根据比较函数的返回值来重新排序数组。最终,我们可以打印arr
来查看重新排序后的结果。
在上述示例代码中,原始数组arr
会按照indexOrder
中指定的索引顺序重新排序,最终结果为['D', 'B', 'E', 'A', 'C']
。
语法
array.sort(sortfunction)
参数 array.sort(sortfunction) 可选。规定排序顺序。必须是函数。
如果添加了sortfunction a用于比较第一个参数 b用于比较第二个参数
如果return小于等于0 a和b顺序不变
如果return大于0 a和b会交换位置