【问题标题】:Javascript Shift Values Of Array [duplicate]数组的Javascript移位值[重复]
【发布时间】:2020-08-16 02:03:37
【问题描述】:
我正在尝试将数组的值移动一个随机数。
示例:
var array = [1,2,3,4];
var shiftAmount = 1;
我想把它换成 [4,1,2,3]
【问题讨论】:
标签:
javascript
node.js
arrays
【解决方案1】:
只需使用 slice 和 concat 拆分数组,然后相反。必须使用模数组长度计算移位,以便您可以移位任何数字。
要获取随机数,请使用 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());