js 按不同的数字复制对象,并顺序排列

image.png
表格内输入想要打印的数量,然后一键打印,数据如下:

let arr=[{sku: "700080170005",goodCategoryName: "狐狸/豹"},{sku: "700080120002",goodCategoryName: "猫咪"},{sku: "700080060001", goodCategoryName: "海洋生物"}]

例如arr[0]需要复制3条,arr[1]复制5条,arr[2]复制2条...

function copyArr(arr,nums) {
        let n = 0
        let newArr = []
        while(n < nums) {
            let copyItem = arr.map(item => JSON.parse(JSON.stringify(item)))
            copyItem.forEach((item,index)=>{
                newArr.push(copyItem[index])
            })
            n++
        }
        return newArr
    }
form.on('submit(printAllA)', function (data) {
        let printData=data
        let arr=[]
        printData.forEach(item=>{
            if(item.sku){
                // console.log("iiiiiitem",item.sku,$('#printSku-'+item.sku).val())
                // console.log("item1",item);
                arr = copyArr(printData,$('#printSku-'+item.sku).val())
            }
        })
        
        console.log("item2",arr);
    })

这样写只会按照最后一个$('#printSku-'+item.sku).val()的数量来复制对象,脑子已经开始糊涂了,想问一下怎么可以复制并且顺序排列呢

阅读 1.7k
2 个回答
form.on('submit(printAllA)', function (data) {
        let printData=data
        let arr=[]
        printData.forEach(item=>{
            if(item.sku){
            arr=arr.concat(new Array(parseInt($('#printSku-'+item.sku).val())).fill(item));
             
            }
        })
        
        console.log("item2",arr);
    })

这样么

var copyData = copyArr(printData,$('#printSku-'+item.sku).val());
arr = arr.concat(copyData);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题