JavaScript中是否有一个允许我更改索引的函数?例如,我在一个数组中有4个值:
var arr = [10, -20, 20, 30]
现在,我想将最小值设置为同一模式后的第一个索引和下一个索引。索引应适用于以上示例:
[-20, 10, 20, 30]
答案 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);