のプロパティ「CONCAT」を読み取ることができません、私ははそもそも未定義
国単位 ---->顧客レポートグループ ---->顧客
のように実体のマルチレベルを持っています 顧客レポーティンググループ以降のそれぞれが異なる 顧客を持っているが異なってい各国単位
コード内変数名は、これはmenuDataと呼ばれるマルチレベルオブジェクトで表現されて
立方----> CRG --->お客様のとおりです。私が望んで
menuData = {
cu1: {
CRG3: {
Customer1: {},
Customer5: {}
},
CRG7: {
Customer3: {},
Customer2: {},
Customer7: {}
}
},
cu4: {
CRG1: {
Customer2: {},
Customer4: {}
},
CRG3: {
Customer4: {}
}
}
};
マルチレベルオブジェクトの各レベルの一意のIDを構築することです。たとえば、顧客単位のIDは同じ
cu1となります。 CU2ので、IDSは、Cu + CU1顧客のための+ crg4
のようにCRGで構成されます顧客のレポート・グループの
上:CU1 + crg4 + customer6。私が何をしたか
がgetIds
と呼ばれる関数であるvar getIds = function(menuData) {
var ids = {};
for (cu in menuData) {
ids[cu] = cu;
for (crg in menuData[cu]) {
if (!(ids[cu] in ids)) {
ids[cu] = {};
ids[cu][crg] = ids[cu].concat(crg);
} else ids[cu][crg] = ids[cu].concat(crg);
for (customer in menuData[cu][crg]) {
if (!ids[cu][crg]) {
ids[cu][crg] = {};
ids[cu][crg][customer] = ids[cu][crg].concat(customer);
} else ids[cu][crg][customer] = ids[cu][crg].concat(customer);
}
}
}
console.log(ids);
return ids;
};
私が得たエラーがある
私がいることで試してみました何未定義
のプロパティ 'CONCAT' を読み取ることができませんそれは定義されていないと言われているので、まだ定義されていないと定義しようとします。
if (!(ids[cu] in ids)) {
ids[cu] = {};
ids[cu][crg] = ids[cu].concat(crg);
}
値が定義されていなければ値を挿入しますが、定義されている場合は値 を割り当ててください。ids [cu] [crg] = ids [cu] .concat(crg);
なぜこのエラーが発生しますか?マルチレベルオブジェクトのIDを取得する方法は?
編集は、excpected出力は
ids = {
"cu1": {
"cu1+CRG3": { "cu1+CRG3+Customer1":{}, "cu1+CRG3+Customer5":{} },
"cu1+CRG7": { "cu1+CRG7+Customer3":{}, "cu1+CRG7+Customer2":{}, "cu1+CRG7+Customer7":{} }
},
"cu4": {
"cu4+CRG1": { "cu4+CRG1+Customer2":{}, "cu4+CRG1+Customer4":{} },
"cu4+CRG3": { "cu4+CRG3+Customer4":{}}
}
}
'.concat'は' Object' [Array.prototype.concat]ではなく 'Array'のメソッドです(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array)。/concat)をMDNに追加します。 –
期待される出力は何ですか? – brk