首页 > 解决方案 > Javascript 移位数组的值

问题描述

我正在尝试将数组的值移动一个随机数。例子:

var array = [1,2,3,4];
var shiftAmount = 1;

我想将其移至 [4,1,2,3]

标签: javascriptnode.jsarrays

解决方案


只需用slice拆分数组,然后将其连接起来。移位必须用模数组长度计算,因此您可以移位任何数字。
要获取随机数,请使用 Math.random() 并使用 Math.round 对其进行舍入。因为随机传递的值介于 0 和 1 之间,所以您必须将它与 arraylength -1 相乘(因为索引计数从 0 到长度 -1)。

function shiftArray(arr,shift) {
    shift = shift % array.length;
    return arr.slice(shift).concat(arr.slice(0,shift));
}

var array = [1,2,3,4];
let shift = Math.round(Math.random() * (array.length-1));
let result = shiftArray(array, shift);
console.log('Shift by ' + shift + ': ',result.toString());


推荐阅读