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

发布于 2022-09-13 00:50:26 字数 1218 浏览 11 评论 0

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()的数量来复制对象,脑子已经开始糊涂了,想问一下怎么可以复制并且顺序排列呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不即不离 2022-09-20 00:50:26
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);
    })
绻影浮沉 2022-09-20 00:50:26

这样么

var copyData = copyArr(printData,$('#printSku-'+item.sku).val());
arr = arr.concat(copyData);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文