对Ajax返回的数据进行处理

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

clipboard.png
想把这个数据处理一下,转成三条数据一个数组项的数组;[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.9k
2 个回答
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);
}

没有测,应该可以

可以使用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);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题