Ajout d'éléments au tableau multidimensionnel
Je veux ajouter un nouvel élément à un champ que je veux avec javascript dans un tableau comme suit. J'ai pu gérer le processus de suppression avec l'aide du lien ci-dessous. Mais l'ajout semble un peu plus difficile.
Le problème est d'ajouter l'élément que je souhaite ajouter, par exemple, sous l'élément avec id = 10.
Supprimer l'élément de tableau d'un tableau infini multidimensionnel
Exemple: élément à ajouter
{
"id": 99,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 100,
"header_tr": "Example item",
"header_en": "Example item",
"content_tr": "example-item",
"content_en": "example-item",
"href_tr": "example-item",
"href_en": "example-item",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:08:59",
"updated_at": "2020-05-24 01:08:59",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
Je souhaite ajouter l'élément ci-dessus à la navigation_sub_categories [] de l'élément dont l'ID est 10.
[
{
"id": 6,
"place": 100,
"header_tr": "KURUMSAL",
"header_en": "CORPORATE",
"content_tr": "kurumsal",
"content_en": "corporate",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:02:36",
"updated_at": "2020-05-24 01:02:36",
"deleted_at": null,
"navigation_sub_categories": [
{
"id": 10,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 100,
"header_tr": "Vizyonumuz ve Misyonumuz",
"header_en": "Vizyonumuz ve Misyonumuz",
"content_tr": "vizyonumuz-ve-misyonumuz",
"content_en": "vizyonumuz-ve-misyonumuz",
"href_tr": "vizyonumuz-ve-misyonumuz",
"href_en": "vizyonumuz-ve-misyonumuz",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:08:59",
"updated_at": "2020-05-24 01:08:59",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 11,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 99,
"header_tr": "Temel Değerlerimiz ve Yönetim Politikamız",
"header_en": "Temel Değerlerimiz ve Yönetim Politikamız",
"content_tr": "Temel Değerlerimiz ve Yönetim Politikamız",
"content_en": "Temel Değerlerimiz ve Yönetim Politikamız",
"href_tr": "Temel Değerlerimiz ve Yönetim Politikamız",
"href_en": "Temel Değerlerimiz ve Yönetim Politikamız",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:09:26",
"updated_at": "2020-05-24 01:09:26",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 12,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 98,
"header_tr": "Organizasyon Yapısı",
"header_en": "Organizasyon Yapısı",
"content_tr": "Organizasyon Yapısı",
"content_en": "Organizasyon Yapısı",
"href_tr": "Organizasyon Yapısı",
"href_en": "Organizasyon Yapısı",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:10:33",
"updated_at": "2020-05-24 01:10:33",
"deleted_at": null,
"navigation_sub_categories": [
{
"id": 19,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 12,
"place": 100,
"header_tr": "Yönetim Kurulu",
"header_en": "Yönetim Kurulu",
"content_tr": "/tr/kurumsal/organizasyon-yapilari/yonetim-kurulu",
"content_en": "/en/kurumsal/organizasyon-yapilari/yonetim-kurulu",
"href_tr": "Yönetim Kurulu",
"href_en": "Yönetim Kurulu",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:13:27",
"updated_at": "2020-05-26 08:58:49",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 20,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 12,
"place": 99,
"header_tr": "Meclis",
"header_en": "Meclis",
"content_tr": "Meclis",
"content_en": "Meclis",
"href_tr": "Meclis",
"href_en": "Meclis",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:13:46",
"updated_at": "2020-05-24 01:13:46",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 21,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 12,
"place": 98,
"header_tr": "Disiplin Kurulu",
"header_en": "Disiplin Kurulu",
"content_tr": "Disiplin Kurulu",
"content_en": "Disiplin Kurulu",
"href_tr": "Disiplin Kurulu",
"href_en": "Disiplin Kurulu",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:14:06",
"updated_at": "2020-05-24 01:14:06",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 22,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 12,
"place": 97,
"header_tr": "Meslek Komiteleri Üyeleri",
"header_en": "Meslek Komiteleri Üyeleri",
"content_tr": "Meslek Komiteleri Üyeleri",
"content_en": "Meslek Komiteleri Üyeleri",
"href_tr": "Meslek Komiteleri Üyeleri",
"href_en": "Meslek Komiteleri Üyeleri",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:14:32",
"updated_at": "2020-05-24 01:14:32",
"deleted_at": null,
"navigation_sub_categories": [
{
"id": 23,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 22,
"place": 100,
"header_tr": "Meslek Altı",
"header_en": "Meslek Altı",
"content_tr": "Meslek Altı",
"content_en": "Meslek Altı",
"href_tr": "Meslek Altı",
"href_en": "Meslek Altı",
"constant_status": "İç Link",
"visible_main_status": "Pasif",
"created_at": "2020-05-24 11:32:00",
"updated_at": "2020-05-24 11:32:00",
"deleted_at": null,
"navigation_sub_categories": [
{
"id": 24,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 23,
"place": 100,
"header_tr": "Meslek Alt Alt",
"header_en": "Meslek Alt Alt",
"content_tr": "Meslek Alt Alt",
"content_en": "Meslek Alt Alt",
"href_tr": "Meslek Alt Alt",
"href_en": "Meslek Alt Alt",
"constant_status": "İç Link",
"visible_main_status": "Pasif",
"created_at": "2020-05-24 11:33:20",
"updated_at": "2020-05-24 11:33:20",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 76,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 23,
"place": 44,
"header_tr": "44",
"header_en": "44",
"content_tr": null,
"content_en": null,
"href_tr": null,
"href_en": null,
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-09-24 12:51:25",
"updated_at": "2020-09-24 12:51:25",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 79,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 23,
"place": 77,
"header_tr": "77",
"header_en": "77",
"content_tr": null,
"content_en": null,
"href_tr": null,
"href_en": null,
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-09-24 12:51:43",
"updated_at": "2020-09-24 12:51:43",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
}
],
"dynamic_fixed_pages": []
}
],
"dynamic_fixed_pages": []
}
],
"dynamic_fixed_pages": []
},
{
"id": 13,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 97,
"header_tr": "Meclis Konuşmaları",
"header_en": "Meclis Konuşmaları",
"content_tr": "Meclis Konuşmaları",
"content_en": "Meclis Konuşmaları",
"href_tr": "Meclis Konuşmaları",
"href_en": "Meclis Konuşmaları",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:11:21",
"updated_at": "2020-05-24 01:11:21",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 14,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 96,
"header_tr": "Logo",
"header_en": "Logo",
"content_tr": "Logo",
"content_en": "Logo",
"href_tr": "Logo",
"href_en": "Logo",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:11:39",
"updated_at": "2020-05-24 01:11:39",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 15,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 96,
"header_tr": "Oda Hesapları",
"header_en": "Oda Hesapları",
"content_tr": "Oda Hesapları",
"content_en": "Oda Hesapları",
"href_tr": "Oda Hesapları",
"href_en": "Oda Hesapları",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:11:58",
"updated_at": "2020-05-24 01:11:58",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 16,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 95,
"header_tr": "Stratejik Planlar ve Çalışma Programları",
"header_en": "Stratejik Planlar ve Çalışma Programları",
"content_tr": "Stratejik Planlar ve Çalışma Programları",
"content_en": "Stratejik Planlar ve Çalışma Programları",
"href_tr": "Stratejik Planlar ve Çalışma Programları",
"href_en": "Stratejik Planlar ve Çalışma Programları",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:12:17",
"updated_at": "2020-05-24 01:12:17",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 17,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 94,
"header_tr": "Kardeş Odalar",
"header_en": "Kardeş Odalar",
"content_tr": "Kardeş Odalar",
"content_en": "Kardeş Odalar",
"href_tr": "Kardeş Odalar",
"href_en": "Kardeş Odalar",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:12:36",
"updated_at": "2020-05-24 01:12:36",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 18,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 94,
"header_tr": "KVKK",
"header_en": "KVKK",
"content_tr": "KVKK",
"content_en": "KVKK",
"href_tr": "KVKK",
"href_en": "KVKK",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:12:55",
"updated_at": "2020-05-24 01:12:55",
"deleted_at": null,
"navigation_sub_categories": [
{
"id": 27,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 18,
"place": 10,
"header_tr": "Test Kvkk Alt",
"header_en": "Test Kvkk Alt EN",
"content_tr": "Test Kvkk Alt",
"content_en": "Test Kvkk Alt EN",
"href_tr": "test-kvkk-alt-tr",
"href_en": "test-kvkk-alt-en",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-09-21 13:10:38",
"updated_at": "2020-09-21 13:10:38",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
}
],
"dynamic_fixed_pages": []
}
]
},
{
"id": 12,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"place": 98,
"header_tr": "Organizasyon Yapısı",
"header_en": "Organizasyon Yapısı",
"content_tr": "Organizasyon Yapısı",
"content_en": "Organizasyon Yapısı",
"href_tr": "Organizasyon Yapısı",
"href_en": "Organizasyon Yapısı",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:10:33",
"updated_at": "2020-05-24 01:10:33",
"deleted_at": null,
"navigation_sub_categories": [
{
"id": 19,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 12,
"place": 100,
"header_tr": "Yönetim Kurulu",
"header_en": "Yönetim Kurulu",
"content_tr": "/tr/kurumsal/organizasyon-yapilari/yonetim-kurulu",
"content_en": "/en/kurumsal/organizasyon-yapilari/yonetim-kurulu",
"href_tr": "Yönetim Kurulu",
"href_en": "Yönetim Kurulu",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:13:27",
"updated_at": "2020-05-26 08:58:49",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 20,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 12,
"place": 99,
"header_tr": "Meclis",
"header_en": "Meclis",
"content_tr": "Meclis",
"content_en": "Meclis",
"href_tr": "Meclis",
"href_en": "Meclis",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:13:46",
"updated_at": "2020-05-24 01:13:46",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 21,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 12,
"place": 98,
"header_tr": "Disiplin Kurulu",
"header_en": "Disiplin Kurulu",
"content_tr": "Disiplin Kurulu",
"content_en": "Disiplin Kurulu",
"href_tr": "Disiplin Kurulu",
"href_en": "Disiplin Kurulu",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:14:06",
"updated_at": "2020-05-24 01:14:06",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
{
"id": 22,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 12,
"place": 97,
"header_tr": "Meslek Komiteleri Üyeleri",
"header_en": "Meslek Komiteleri Üyeleri",
"content_tr": "Meslek Komiteleri Üyeleri",
"content_en": "Meslek Komiteleri Üyeleri",
"href_tr": "Meslek Komiteleri Üyeleri",
"href_en": "Meslek Komiteleri Üyeleri",
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-05-24 01:14:32",
"updated_at": "2020-05-24 01:14:32",
"deleted_at": null,
"navigation_sub_categories": [
{
"id": 23,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 22,
"place": 100,
"header_tr": "Meslek Altı",
"header_en": "Meslek Altı",
"content_tr": "Meslek Altı",
"content_en": "Meslek Altı",
"href_tr": "Meslek Altı",
"href_en": "Meslek Altı",
"constant_status": "İç Link",
"visible_main_status": "Pasif",
"created_at": "2020-05-24 11:32:00",
"updated_at": "2020-05-24 11:32:00",
"deleted_at": null,
"navigation_sub_categories": [
{
"id": 24,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 23,
"place": 100,
"header_tr": "Meslek Alt Alt",
"header_en": "Meslek Alt Alt",
"content_tr": "Meslek Alt Alt",
"content_en": "Meslek Alt Alt",
"href_tr": "Meslek Alt Alt",
"href_en": "Meslek Alt Alt",
"constant_status": "İç Link",
"visible_main_status": "Pasif",
"created_at": "2020-05-24 11:33:20",
"updated_at": "2020-05-24 11:33:20",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},
**{
"id": 76,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 23,
"place": 44,
"header_tr": "44",
"header_en": "44",
"content_tr": null,
"content_en": null,
"href_tr": null,
"href_en": null,
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-09-24 12:51:25",
"updated_at": "2020-09-24 12:51:25",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
},**
{
"id": 79,
"navigation_main_category_id": 6,
"navigation_sub_category_id": 23,
"place": 77,
"header_tr": "77",
"header_en": "77",
"content_tr": null,
"content_en": null,
"href_tr": null,
"href_en": null,
"constant_status": "İç Link",
"visible_main_status": "Aktif",
"created_at": "2020-09-24 12:51:43",
"updated_at": "2020-09-24 12:51:43",
"deleted_at": null,
"navigation_sub_categories": [],
"dynamic_fixed_pages": []
}
],
"dynamic_fixed_pages": []
}
],
"dynamic_fixed_pages": []
}
],
"dynamic_fixed_pages": []
}
]
Réponses
C'est tellement facile aussi que je ne le pense hier. Code similaire. Essayer
const filterObject = (object, id, obj) => {
const newObj = [];
object.map((element) => {
if (
typeof element.navigation_sub_categories === "object" &&
Array.isArray(element.navigation_sub_categories)
)
element.navigation_sub_categories = filterObject(element.navigation_sub_categories, id, obj);
if (parseInt(element.id) === parseInt(id))
element.navigation_sub_categories = [element.navigation_sub_categories, obj].filter(Boolean);
newObj.push(element);
});
return newObj;
};
Ravi de vous aider. Si vous avez également besoin d'aide, vous pouvez écrire sur mon WhatsApp. +994705069324. Ou postez ici, je vous suit pour obtenir de l'aide ...
Utilisez la méthode Array.prototype.find pour trouver ce que vous recherchez.
function addSubSubObject(objs, mainid, subid, subsubobj)
{
let mainobj = objs.find(o => o.id == mainid);
if(mainobj)
{
let subobj = mainobj.navigation_sub_categories.find(o => o.id == subid);
if(subobj)
{
subobj.navigation_sub_categories.push(subsubobj);
subsubobj.navigation_sub_category_id = subid;
}
else
{
let subindex = 0;
while(!subobj && subindex < mainobj.navigation_sub_categories.length)
{
const objToCheck = mainobj.navigation_sub_categories[subindex];
if(objToCheck.navigation_sub_categories.length > 0)
{
subobj = findSubObject(objToCheck, subid);
}
subindex++;
}
if(subobj)
{
subobj.navigation_sub_categories.push(subsubobj);
subsubobj.navigation_sub_category_id = subobj.id;
}
}
}
}
function findSubObject(mainObj, subid)
{
let subobj = mainObj.navigation_sub_categories.find(o => o.id == subid);
if(!subobj)
{
let subindex = 0;
while(!subobj && subindex < mainobj.navigation_sub_categories.length)
{
const objToCheck = mainobj.navigation_sub_categories[subindex];
if(objToCheck.navigation_sub_categories.length > 0)
{
subobj = findSubObject(objToCheck, subid);
}
subindex++;
}
}
return subobj;
}
let ins =
{
"id": 99,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"navigation_sub_categories": [],
};
let ins2 =
{
id:44,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"navigation_sub_categories": [],
};
let objs =
[
{
"id": 6,
"navigation_sub_categories":
[
{
"id": 10,
"navigation_main_category_id": 6,
"navigation_sub_category_id": null,
"navigation_sub_categories": [],
}
]
}
]
addSubSubObject(objs, 6, 10, ins);
addSubSubObject(objs, 6, 99, ins2);
console.log(JSON.stringify(objs))