0

后台返回的数据是一个对象数组


想把这个数据处理一下,转成三条数据一个数组项的数组;[Array(3),Array(3),Array(3),Array(2)]
类似这种格式的

function handleData(data){

    var handleArr = [];
    var len = Math.ceil(data.length / 3);
    for(var i = 0;i < len;i++){
        for(var j = 3*i;j<3*i+2;j++){
            handleArr[i].push(data[j]);
        }
    }        
    console.log(handleArr);

}

小白求解答

查看全部 2 个回答

1

可以使用Array.prototype.splice(start,count)
这个函数从start位置起截取并返回count个元素。

function handleData(data) {
    var handleArr = [];

    while (data.length > 0) {
        handleArr.push(data.splice(0, 3));        
    }
    console.log(handleArr);
}

推荐答案

0

已采纳
function handleData(data) {
    let handleArr = [];
    let arr = []
    for (var i = 0; i < data.length; i++) {
        if (i > 0 && i % 3 === 0) {
            handleArr.push(arr);
            arr = []
        }
        arr.push(data[i]);
    }
    if (arr) {
        handleArr.push(arr);
    }
    console.log(handleArr);
}

没有测,应该可以