js双重循环返回的问题

 var arr = [3,2,2,2];

 var arr1 = [{},{},{},{},{},{},{}] 

想循环arr1 最后返回的是arr1根据arr的value值 返回对应的数组 

想要得到的是 [0,0,0,1,1,2,2,3,3]


var arr = [3,2,2,2];

var arr1 = [{},{},{},{},{},{},{}] // 返回 [0,0,0,1,1,2,2]

var d = arr1.map(function(value,index){

    let num = 0

    arr.forEach((v,i) =>{

        if(v ==3){

            num = 0;

        }else if(v ==2){

            num ++;

        }

    })

    return num

})

console.log(d)

感觉怎么写都不对 

老司机指导迷津 不胜赶紧


www说
浏览 604回答 1
1回答

九州编程

arr1 根据 arr 得到数据,肯定外层循环的是 arr,然后再往 arr1 中 push 值你的思路是不是这样子的?遍历 arr,在arr1中放入 item 个 index 值。 比如 arr[0]=3 在 arr1 中放入 3 个 0,这种操作?    var arr = [3, 2, 2, 2];    var arr1 = [] // 返回 [0,0,0,1,1,2,2]    arr.forEach(function (item, index) {        while(item-- > 0){            arr1.push(index);        }    });    console.log(arr1);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript