javascript - 在 AngularJS 中将键值插入数组时出现 “.push is not a function” 错误

标签 javascript arrays angularjs dictionary angularjs-scope

我正在尝试使用以下方法将 ItemId(作为键)PartNO(value) 动态推送到基于 Noof ItemPartDtls 的数组for 循环,以便我可以在需要时在 for 循环中使用 ItemID 再次获取这些 PartNO

但我收到错误消息:

TypeError: NoofParts.push is not a function

插入时。

var NoofParts = []; // initialized globally

if ($scope.ItemPartDtls.length > 0) {    
    for (let e = 0; e <= $scope.ItemPartDtls.length - 1; e++) {
        // NoofParts.push({ "ItemID": $scope.ItemsInfo[d].ITEM_ID, "PartNO":  $scope.ItemPartDtls[e].PART_NO });
        NoofParts.push({ ItemID: $scope.ItemsInfo[d].ITEM_ID, PartNO: $scope.ItemPartDtls[e].PART_NO});
        // error here: TypeError: NoofParts.push is not a function
    }
}

...

function GetPartdtls(ItmId){
    for(i = 0; i < NoofParts.length; i++){
        if(NoofParts[i].ItemID == ItmId) {
            console.log("ItemID:- " + NoofParts[i].ItemID + " PartNO:- "  + NoofParts[i].PartNO);
        }
    }
}

最佳答案

这样试试

 var NoofParts =  []; // initialized globally

if ($scope.ItemPartDtls.length > 0) {    
   for (let e = 0; e <= $scope.ItemPartDtls.length - 1; e++) {
       // NoofParts.push({ "ItemID": $scope.ItemsInfo    [d].ITEM_ID, "PartNO":  $scope.ItemPartDtls[e].PART_NO});
        let newArr = { 
                       ItemID: $scope.ItemsInfo[e].ITEM_ID, //here your typo error
                       PartNO: $scope.ItemPartDtls[e].PART_NO
                      }
        NoofParts.push(newArr);
    }
}

关于javascript - 在 AngularJS 中将键值插入数组时出现 “.push is not a function” 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56931958/

相关文章:

angularjs - 如何以编程方式更新 ui-grid 中的排序指示器?

angularjs:ui-grid 不呈现超过 10 列

javascript - R/Shiny selectInput 小部件大小

javascript - 如何在数据表中按下按键时取消选择行

javascript - 从单个下拉列表中启用选项卡

javascript - Vue.js 打开/关闭捕获

sql - 按多列分组并将结果作为单独列中的数组

C 中的 Char 数组串联格式

php - 如何仅在一个数组中从数据库返回值

javascript - 隔离范围 - 仅在指令范围内定义的值必须执行更改