多次元配列を作成するスクリプトを作成しようとしています。これは通常は問題ではないはずですが、何らかの理由ですべてがここで失敗しています。理由はわかりません。インデックスが設定されているにもかかわらず、配列にnullがあります
function getProducts(products){
var allProducts = new Array();
for(var p in products) if(products[p]){
var groupName = products[p].otherGroupName;
var code = (products[p].code.split("."))[0];
if(!(products[p].commonName.length==0 && groupName=="")){
if(groupName=="") {
groupName="Custom Admin Products";
}
if(!(groupName in allProducts)) {
allProducts[groupName] = new Array();
}
var np = {};
np.commonName = products[p].commonName;
np.code = code;
allProducts[groupName][np.code] = np;
}
}
console.log(allProducts);
}
products
の引数がオブジェクトです。 2行目から最後の行までが表示され、配列をログに記録しようとしていますが、ログには'[]'
と表示されます。私がallProducts[groupName][np.code]
を記録すると、それは私に構造を与えます。だから私は完全に失われている。
?あなたは 'ヌル'か構造物を得ていますか?また、実際に配列を正しく使用しているわけでもありません。動的キー( 'allProducts [groupName] = new Array()'、 'allProducts [groupName] [np.code] = np')を割り当てると、配列をオブジェクトとして使うだけです。 –
arrayの代わりにオブジェクトを使う: 'allProducts = {};' ..... 'allProducts [groupName] = {};' –