向 AngularJS 中的数组插入键值时出现“.push 不是函数”错误
“.push is not a function” error while inserting key-value to an array in AngularJS
我正在尝试使用 for
循环将 ItemId(as a key)
和 PartNO(value)
动态推送到基于 Noof ItemPartDtls
的数组,以便我可以再次获取那些 PartNO
s 在需要时在 for
循环中使用 ItemID
。
但我收到错误信息:
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);
}
}
理想情况下,您的代码应该可以正常工作,但要双重证明,请尝试以下方法
(function() {
let NoofParts = []; // initialized globally
if ($scope.ItemPartDtls.length > 0) {
for (let e = 0; e <= $scope.ItemPartDtls.length - 1; e++) {
if (!Array.isArray(NoofParts)) {
NoofParts = [];
}
NoofParts.push({
ItemID: $scope.ItemsInfo[d].ITEM_ID,
PartNO: $scope.ItemPartDtls[e].PART_NO
}); // error here: TypeError: NoofParts.push is not a function
}
}
})();
我正在尝试使用 for
循环将 ItemId(as a key)
和 PartNO(value)
动态推送到基于 Noof ItemPartDtls
的数组,以便我可以再次获取那些 PartNO
s 在需要时在 for
循环中使用 ItemID
。
但我收到错误信息:
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);
}
}
理想情况下,您的代码应该可以正常工作,但要双重证明,请尝试以下方法
(function() {
let NoofParts = []; // initialized globally
if ($scope.ItemPartDtls.length > 0) {
for (let e = 0; e <= $scope.ItemPartDtls.length - 1; e++) {
if (!Array.isArray(NoofParts)) {
NoofParts = [];
}
NoofParts.push({
ItemID: $scope.ItemsInfo[d].ITEM_ID,
PartNO: $scope.ItemPartDtls[e].PART_NO
}); // error here: TypeError: NoofParts.push is not a function
}
}
})();