JavaScript 获取连续值对的数组

标签 javascript arrays multidimensional-array

如何转换数组,例如:

[2,5,4,0]

进入一个对的数组,但没有获取每一对。例如,从上面给出的数组中,我想要以下数组:

[[2, 5],[5, 4], [4, 0], [0, 2]

此外,是否可以有另一个函数返回一个数组,例如:[[2,5,4],[5,4,0],[4,0,2],[0, 2,5]]

还有另一个返回:[[2,5,4,0],[5,4,0,2],[4,0,2,5],[0,2, 5,4]]

编辑:我已经尝试了以下方法,它返回了数组中每个可能的对,但这不是我正在寻找的:

let result = pieces[0].reduce( (acc, v, i) =>
    acc.concat(pieces[0].slice(i+1).map( w => [v, w] )),
[]);

这将显示:[ [ 2, 5 ], [ 2, 4 ], [ 2, 0 ], [ 5, 4 ], [ 5, 0 ], [ 4, 0 ] ]

Edit2:我的问题是,我尝试过的所有内容都给出了二维、三维和四维数组的每种排列,但我只想要上面的示例。比方说,连续值的排列。

最佳答案

我相信这就是您正在寻找的:

let arr = [2, 5, 4, 0]
function getPermutation(chunk){
    let result = arr.reduce((acc,e,i) => {
        if(i + chunk <= arr.length)
            acc.push(arr.slice(i,i+chunk))
        else
            acc.push(arr.slice(i,i+chunk).concat(arr.slice(0,(i+chunk) % arr.length)))
        return acc;
    },[])
    return result 
}

console.log(getPermutation(2))
console.log(getPermutation(3))
console.log(getPermutation(4))

关于JavaScript 获取连续值对的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71422079/

相关文章:

javascript - ajax调用错误处理函数或if-else语句

c++ - 如何在类中重新分配指针数组?

python - 快速检查数组中的元素是否在另一个数组中(2D)

arrays - 快速解析一个n维数组

javascript - 有没有办法水平排列选择选项?

javascript - 如何自动调整/调整 html5 textarea 元素的大小以适合初始内容?

javascript - AWS S3 存储桶上传时出现 CORS 错误

C++ 二维数组函数 - 为什么第二个索引不能可变

python - numpy concatenate 不将新数组附加到空多维数组

c++ - 如何将二维数组作为参数传递?