javascript - Javascript 移位数组的值
问题描述
我正在尝试将数组的值移动一个随机数。例子:
var array = [1,2,3,4];
var shiftAmount = 1;
我想将其移至 [4,1,2,3]
解决方案
只需用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());
推荐阅读
- sql - 每月玩此游戏的玩家百分比 Redshift
- spring - 如何使用 JUnit 和 SpringRunner 运行非静态后测
- regex - PowerShell 正则表达式在换行符附近不匹配
- sql - 尝试根据求和列的条件返回行
- javascript - 使用 multer 上传文件
- postgresql - 我应该在 HA 设置中禁用 Knex.js 连接池吗?
- python - Keras 中的两个并行但不同的数据集作为多个输入?
- ios - 选择器数据的属性不会保留 for 循环的结果
- python - numpy - 无法广播输入未知错误
- html - HTML“a”标签查询,它是如何被重定向的?