如何使用Json和每个循环创建嵌套数组

时间:2018-06-26 05:27:52

标签: javascript jquery arrays json

这是代码如何在此处创建嵌套数组以及如何自行对其进行数组化。我不能用于this.push的代码是什么,因为它不起作用.....

function getAddedItemDetailArray() {
    debugger;
    var arrItemDetail = [];
    $(".clsaddNewItem").each(function () {
        arrItemDetail.push({
            "itemid": $(this).find(".clsHdfSitemId").val(),
            "uomid": $(this).find(".clsUom").val(),
            "orderqty": $(this).find(".clsOrderQuantity").val(),
            "deliveringqty": $(this).find(".clsDeliveringQuantity").val(),
            "listofgoodsdeliverynoteitemmapallocation": [$(this).find(".clsaddNewItemSub").each(function() {
                **this**.push({

                    "itemwarehousedetailmapid": $(this).find(".clsLocation").val(),
                    "qty": $(this).find(".clsQty").val()

                })
            })]


        })
    });
    return arrItemDetail;
}

1 个答案:

答案 0 :(得分:1)

此JavaScript范围在函数内部时引用不同的对象。您可以详细了解this和范围MDN documention

要解决该问题,建议您使用arrow function代替内部匿名函数,以保留访问正确this的范围。

 


function getAddedItemDetailArray() {
    debugger;
    var arrItemDetail = [];
    $(".clsaddNewItem").each(function () {
        arrItemDetail.push({
            "itemid": $(this).find(".clsHdfSitemId").val(),
            "uomid": $(this).find(".clsUom").val(),
            "orderqty": $(this).find(".clsOrderQuantity").val(),
            "deliveringqty": $(this).find(".clsDeliveringQuantity").val(),
            "listofgoodsdeliverynoteitemmapallocation": [$(this).find(".clsaddNewItemSub").each( () => {
                this.push({
                    "itemwarehousedetailmapid": $(this).find(".clsLocation").val(),
                    "qty": $(this).find(".clsQty").val()
                })
            })]


        })
    });
    return arrItemDetail;
}