js 将一维数组转成二维数组

开发时遇上一个将一维数组转换成二维数据结构的要求,记录一下工具函数。

说明:(这是一个函数,直接复制到<javaScript></javaScript>  标签内即可使用,下面有使用图例)

 /**
 * 
 * @param fromArr  需要转换的一维数组(源数组) 
 * @param mountOfEachLine  目标数组内的子数组元素个数(例:若要的到这样的结构 -> [[1,2],[3,4],[5,6],[7,8],[9,10]] , 则mountOfLine = 2)
 * @returns newArr 数据结构样式 -> [[1,2],[3,4],[5,6],[7,8],[9,10]]
 */
 function fun(fromArr,mountOfEachLine) {
    //装二维数组的容器(目标数组)
    let newArr = [];
    //源数组元素个数
    let len = fromArr.length;
    //计算出指定好的 mountOfLine 源数组能分成几个子数组
    let lineNum =  len % mountOfEachLine == 0 ? len / mountOfEachLine : Math.ceil(len / mountOfEachLine);
    //将源数组的元素拿出来,放到新数组 newArr 容器内
    for (let i = 0; i < lineNum; i++) {
        let tempElement = fromArr.slice(i*mountOfEachLine,(i+1)*mountOfEachLine);
        newArr.push(tempElement);
    }
    return newArr;
}

使用代码图示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var fromArr = [1,2,3,4,5,6,7,8,9,10];
    var mountOfLine = 2;
    var data = fun(fromArr,mountOfLine);
    console.log('data   ',data)
    /**
     *
     * @param fromArr  需要转换的一维数组(源数组)
     * @param mountOfEachLine  目标数组内的子数组元素个数(例:若要的到这样的结构 -> [[1,2],[3,4],[5,6],[7,8],[9,10]] , 则mountOfLine = 2)
     * @returns newArr 数据结构样式 -> [[1,2],[3,4],[5,6],[7,8],[9,10]]
     */
     function fun(fromArr,mountOfEachLine) {
        //装二维数组的容器(目标数组)
        let newArr = [];
        //源数组元素个数
        let len = fromArr.length;
        //计算出指定好的 mountOfLine 源数组能分成几个子数组
        let lineNum =  len % mountOfEachLine == 0 ? len / mountOfEachLine : Math.ceil(len / mountOfEachLine);
        //将源数组的元素拿出来,放到新数组 newArr 容器内
        for (let i = 0; i < lineNum; i++) {
            let tempElement = fromArr.slice(i*mountOfEachLine,(i+1)*mountOfEachLine);
            newArr.push(tempElement);
        }
        return newArr;
    }


</script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值