J'utilise javascript pour comparer un seul tableau et un tableau multidimensionnel. Ici, je veux comparer ces 2 tableaux et la valeur correspondante doit être affichée.
arr [1,2,3]
valeur à rechercher dans le tableau multidimensionnel "md2". Ceci est mon code :: j'ai pris un seul tableau et un autre comme tableau multidimensionnel
var arr = [1,2,3]; var md2 = [[23,8,2],[1,5,8],[1,2,3],[8,5,2]]; for(var j=0; j<md2.length ; j++){ if(arr == md2[j]){ console.log(arr + " ... " + md2[j]); } }
O / P obligatoire: - [1 , 2,3]
doit correspondre et doit être affiché dans la console
4 Réponses :
Vous pouvez utiliser les méthodes .find ()
et .every ()
pour trouver un tableau dans un tableau multidimensionnel:
var arr1 = [1,2,3]; var arr2 = [1,2,5]; var md2 = [[23,8,2],[1,5,8],[1,2,3],[8,5,2]]; var searchAndPrint = (a1, a2) => { let arr = a1.find(a => a.every((v, i) => v === a2[i])); if(arr) console.log(arr); else console.log("No Results"); }; searchAndPrint(md2, arr1); searchAndPrint(md2, arr2);
Une solution plus courte (mais peut-être moins performante), pourrait être de forcer les tableaux dans une chaîne, puis de les comparer, au lieu d'utiliser chaque
Vous ne pouvez pas comparer les tableaux
dans js. Si vous voulez comparer des tableaux simples, vous pouvez les convertir en string
pour comparer. Cette méthode n'est pas applicable aux tableaux contenant des objets
.
var arr = [1,2,3]; var md2 = [[23,8,2],[1,5,8],[1,2,3],[8,5,2]]; for(var j=0; j<md2.length ; j++){ if(arr.toString() === md2[j].toString()){ console.log(arr + " ... " + md2[j]); } }
Vous pouvez utiliser JSON.stringify
pour comparer les tableaux.
var arr = [1,2,3]; var md2 = [[23,8,2],[1,5,8],[1,2,3],[8,5,2]]; for(var j=0; j<md2.length ; j++){ if(JSON.stringify(arr) === JSON.stringify(md2[j])){ console.log(arr + " ... " + md2[j]); } }
Pour vérifier, vous devez vérifier directement la longueur et les éléments, car vous n'avez pas la même référence d'objet.
var arr = [1, 2, 3], md2 = [[23, 8, 2], [1, 5, 8], [1, 2, 3], [8, 5, 2]]; console.log(md2.some(a => arr.length === a.length && a.every((v, i) => v === arr[i])));
Copie possible de Comment comparer des tableaux en JavaScript?