Lorsque vous travaillez sur un projet d'entreprise, vous devez écrire une méthode, les paramètres de la méthode sont une collection de matrices de menu et un ID de menu, et le format du tableau de menu est un JSON en forme d'arbre, comme indiqué ci-dessous:
La copie de code est la suivante: [{"id": 28, "texte": "Informations de l'entreprise", "enfants": [
{"id": 1, "texte": "Culture d'entreprise"},
{"id": 2, "texte": "plan de recrutement"},
{"id": 6, "texte": "News News", "Children": [
{"id": 47, "texte": "Industrie News"}]},
{"id": 11, "texte": "Interne News", "Children": [
{"id": 24, "texte": "Informations administratives"},
{"id": 27, "texte": "Indication de haut niveau"}]},
{"id": 22, "texte": "Contactez-nous"},
{"id": 26, "texte": "affichage de produit", "enfants": [
{"id": 32, "texte": "produit électrique"},
{"id": 33, "texte": "accessoires introduction"}}]
}]}]
L'ID de menu donné est maintenant 32, et vous devez trouver l'élément correspondant et renvoyer le nom du menu correspondant. Nom. de JavaScript et placez la méthode de traverser les enfants dans une méthode anonyme, afin que vous puissiez vous réapparaître dans la méthode anonyme. la méthode principale.
Copiez le code comme suit: fonction getMenuname (menus, id) {
var name = "";
pour (var i = 0; i <menus.length; i ++) {
if (menus [i] .id == id) {
name = menus [i] .Text;
casser;
}
autre {
(fonction () {
var m = arguments [0];
var menuID = arguments [1];
pour (var j = 0; j <M.Length; j ++) {
if (m [j] .id == menuID) {
name = m [J] .Text;
casser;
}
sinon si m [j] .children! = null && m [j] .children.length> 0) {
arguments.callee (m [j] .children, val); // méthode anonyme récursive
}
}
}) (menus [i] .children, id);
}
}
nom de retour;
}