根据最低值更改索引

时间:2018-12-26 22:15:28

标签: javascript arrays sorting numbers

JavaScript中是否有一个允许我更改索引的函数?例如,我在一个数组中有4个值:

var arr = [10, -20, 20, 30]

现在,我想将最小值设置为同一模式后的第一个索引和下一个索引。索引应适用于以上示例:

[-20, 10, 20, 30]

2 个答案:

答案 0 :(得分:2)

听起来您想对数组进行排序。默认的JS排序使用基于字符串的比较。您需要提供自己的比较器函数以进行数字比较:

var arr = [10, -20, 20, 30]

arr.sort((i, j) => i - j)

console.log(arr)

答案 1 :(得分:2)

您可以获取最小值的索引,然后将其拼接并取消移位该值。

结果不会像sort一样改变其他元素的顺序。

var array = [10, -20, 20, 30],
    index = array.reduce((r, v, i, a) => a[r] < v ? r : i, 0);

array.unshift(array.splice(index, 1)[0]);

console.log(array);