問題:私はJSグローバル変数を持っています。これは、 "メニュー構成"を持つオブジェクトであるかどうかを確認して、欠落している構成を取り込みます。JS:ネストされたオブジェクト/プロパティにオブジェクトを動的に取り込み/結合する>より簡単な方法がありますか?
だから、この作品は、このAS2に基づいています。
var result_array = re.result.items;
_global.menu_array = new Array();
var menu_type_num:Number = -1;
var menu_group_num:Number = -1;
var menu_id_num:Number = -1;
for (var i=0; i<result_array.length; i++){
if (menu_type_num != result_array[i].menu_type){
menu_type_num = result_array[i].menu_type;
menu_group_num = -1;
var type_array:Array = new Array();
_global.menu_array[menu_type_num] = type_array;
}
if (menu_group_num != result_array[i].menu_group){
menu_group_num = result_array[i].menu_group;
var group_array:Array = new Array();
_global.menu_array[menu_type_num][menu_group_num] = group_array;
}
var menu_obj:Object = new Object();
menu_id_num = menu_obj.menu_id = Number(result_array[i].menu_id);
menu_obj.menu_text = result_array[i].menu_text;
_global.menu_array[menu_type_num][menu_group_num][menu_id_num] = menu_obj;
}
私はJSでこの溶液に達しました:これは動作します
result.then(function(res)
{
if(!_MEV2_GLOBAL.hasOwnProperty("menu_array"))
{
_MEV2_GLOBAL.menu_array = {};
}
res.forEach(r =>
{
if(!_MEV2_GLOBAL.menu_array.hasOwnProperty(r.menu_type))
{
_MEV2_GLOBAL.menu_array[r.menu_type] = {};
}
if(!_MEV2_GLOBAL.menu_array[r.menu_type].hasOwnProperty(r.menu_group))
{
_MEV2_GLOBAL.menu_array[r.menu_type][r.menu_group] = {};
}
if(!_MEV2_GLOBAL.menu_array[r.menu_type][r.menu_group].hasOwnProperty(r.menu_id))
{
_MEV2_GLOBAL.menu_array[r.menu_type][r.menu_group][r.menu_id] = {
menu_id: r.menu_id,
menu_text: r.menu_text
};
}
}
}
をしかし、すべてのサブレベルのためならばやって...ください私は別の方法、何かを減らしたり、何か、より効果的かつ簡潔な何かを持っていますか?
私はJSについて少し知っていますが、私の解決策は最善の方法ではありません。それとも私が「諸悪の根源」に落下しています:P
EDIT: 入力がのIndexedDB「テーブル」から来ているので、結果は上のものと類似したオブジェクト(「行」)で作られています写真: このResultSetはGlobalVarに挿入されている必要があり
for example, "t_menus_gre" select is the input
が、それはこのような構造に従ってください: this object is my GlobalVar and should include a subObject['menu_array'] with menus configs by type/group/id
入力の例と期待される出力を教えてください。 – tiagodws
私は自分の質問を更新しました、あなたが求めていたことを願っています;) – rantunes