別の配列を入力として使用してオブジェクトの配列を作成しようとしています。私は、ループの次のコードを持っている:Javascriptオブジェクトを正しく初期化できません
// Setup product key for local items
for (var i=0; i<$scope.listDetails.details.length ; i++) {
if ($scope.listDetails.details[i].productIdentifier2 == 'Local') {
var productFound = false;
for (var j=0; j< $scope.allproducts.length ; j++) {
if ($scope.listDetails.details[i].category == $scope.allproducts[j].category && $scope.listDetails.details[i].productname == $scope.allproducts[j].productname && $scope.listDetails.details[i].productIdentifier2 == $scope.allproducts[j].productIdentifier2) {
$scope.listDetails.details[i].productKey = $scope.allproducts[j].productKey;
productFound = true;
break;
}
}
// Group all products to be inserted
if (productFound==false) {
var productDetailSingle = {};
console.log("productDetail init");
console.log(productDetailSingle);
productDetailSingle.category = $scope.listDetails.details[i].cateogry;
productDetailSingle.itemStatus = $scope.listDetails.details[i].itemStatus;
productDetailSingle.productIdentifier1 = $scope.listDetails.details[i].productcode;
productDetailSingle.productIdentifier2 = $scope.listDetails.details[i].productIdentifier2;
productDetailSingle.productName = $scope.listDetails.details[i].productname;
productDetailSingle.productname = $scope.listDetails.details[i].productname;
productDetailSingle.productcode = $scope.listDetails.details[i].productcode;
console.log("productDetail push");
console.log(productDetailSingle);
productsToAdd.push(productDetailSingle);
}
}
}
私が午前問題は、私はproductDetailSingleオブジェクトをログインしたとき、私は初期化されなかった他のプロパティを取得していますということです。あなたが見ることができるように
[Log] productDetail init (console-via-logger.js, line 173)
[Log] {} (console-via-logger.js, line 173)
[Log] productDetail push (console-via-logger.js, line 173)
[Log] Object (console-via-logger.js, line 173)
category: undefined
itemStatus: "OPEN"
productIdentifier1: 0
productIdentifier2: "Local"
productName: "mushroom "
productcode: 0
productname: "mushroom "
Object Prototype
[Log] productDetail init (console-via-logger.js, line 173)
[Log] {} (console-via-logger.js, line 173)
[Log] productDetail push (console-via-logger.js, line 173)
[Log] Object (console-via-logger.js, line 173)
available: "Y"
category: undefined
itemStatus: "OPEN"
price: null
productDesc: null
productIdentifier1: 0
productIdentifier2: "Local"
productKey: 53
productName: "nido milk"
productcode: 0
productname: "nido milk"
uuid: "BAAFE64E-CF76-4156-A09F-80F678E3A2B0"
オブジェクトのプロトタイプ
、最初のオブジェクトが正しく初期化されています。ここでの条件であれば(productFound == false)のためのコンソールログの出力があります。しかし、2番目のオブジェクトでは、最初に{}に設定しましたが、2番目のオブジェクトに追加された他のプロパティがありました。誰もこのタイプの問題に以前に遭遇しましたか?
あなたは '$ scope.listDetails.details [i]の.cateogryにタイプミスがあり;' –