J'ai stocké des variables dans un tableau. Maintenant, j'ai besoin d'extraire les variables avec la valeur la plus élevée et de les stocker dans un autre tableau.
Ceci est pour un programme JavaScript en cours d'exécution sur un site wix pour ma fille. P>
var kiara = 1; var rodeo = 3; var calypso = 3; var balthazar = 3; var mistral = 4; var saya = 4; var luna = 4; var points = [{kiara}, {rodeo}, {calypso}, {balthazar}, {mistral}, {saya}, {luna}],
4 Réponses :
solution ci-dessous. Il y aurait un moyen de le faire avec moins de code, mais cela aura le travail pour vous. Une chose à retenir, car dans les boucles est votre ami lorsque vous travaillez avec des objets.
var kiara = 1; var rodeo = 3; var calypso = 3; var balthazar = 3; var mistral = 4; var saya = 4; var luna = 4; var points = [{rodeo}, {calypso}, {balthazar}, {mistral}, {saya}, {luna},{kiara}]; var maxNumberArray = []; var maxNamesArray = []; // ADDED THIS LINE var max; for(var char in points){ for(var name in points[char]){ if(!max){ max = points[char][name]; } else { if(max < points[char][name]){ max = points[char][name]; } } } } for(var char in points){ for(var name in points[char]){ if(points[char][name] === max){ maxNumberArray.push(points[char]); maxNamesArray.push(name); // ADDED THIS LINE } } } console.log(JSON.stringify(maxNumberArray)); console.log(maxNamesArray); // ADDED this LINE
Et si après cette étape, je veux obtenir un tableau avec juste les noms des variables contenues dans maxnumberarray? I.e. Var Array_Name = [Mistral, Saya, Luna]; ? Merci,
Je viens de créer un nouveau tableau et j'ai ajouté les noms comme je suis allé. J'ai ajouté le commentaire // ajouté cette ligne ... à l'endroit où j'ai apporté les modifications. J'espère que cela aide.
Étant donné que votre tableau est commandé, vous savez déjà que la valeur MaxImun se trouve à la dernière position de la matrice. Donc, d'abord, vous pouvez obtenir cette valeur, puis vous pouvez utiliser cette valeur pour p> var kiara = 1;
var rodeo = 3;
var calypso = 3;
var balthazar = 3;
var mistral = 4;
var saya = 4;
var luna = 4;
var points = [{saya}, {rodeo}, {mistral}, {balthazar}, {luna}, {kiara}, {calypso}];
// Since array is not ordered, we need to get highest value.
// So, we can get it like this:
let maxVal = points.reduce((max, v) => Math.max(Object.values(v)[0], max), null);
console.log(maxVal);
// Now, filter the array with the highest elements
let highest = points.filter(x => Object.values(x)[0] === maxVal);
console.log(highest)
Je voudrais vraiment avoir une explication de la raison pour laquelle cela n'est pas utile. Donc, je peux améliorer ou supprimer si correspondent. Est le moins que vous puissiez faire lorsque vous descendez.
Voici la façon ES6 de faire des choses. Le cas de bord de la liste n'est pas en ordre de ne pas être pris en charge. Les valeurs les plus élevées peuvent donc être n'importe où. Vous pouvez également le modifier pour obtenir les plus petites valeurs. Si vous avez des questions sur le code, demandez-vous et je vais répondre.
p>
const kiara = 1; const rodeo = 3; const calypso = 3; const balthazar = 3; const mistral = 4; const saya = 4; const luna = 4; function getNamesWithHighestPoints(points) { const hash = {}; for(let i = 0; i < points.length; i++) { let point = points[i]; let name = Object.keys(point)[0]; let score = Object.values(point)[0]; if(hash[score] === undefined) { hash[score] = [point]; } else { hash[score].push(point); } } let biggestScore = 0; Object.keys(hash).forEach(pointKey => { if(biggestScore < pointKey) { biggestScore = pointKey; } }); return hash[biggestScore]; } const points = [{kiara}, {rodeo}, {calypso}, {balthazar}, {mistral}, {saya}, {luna}]; console.log(getNamesWithHighestPoints(points));
Un moyen est de trouver la plus grande valeur d'abord avec résultat sera:
.map code> et
.Reduce code> fonctionne ensemble. Ensuite, nous pouvons obtenir les objets à partir du tableau Code> Points Code> qui ont leurs premières propriétés avec la valeur de
Maxvalue CODE> et appuyez sur à un tableau distinct
Newarray code>. < Pré> xxx pré>
[{Mistral: 4}, {Saya: 4}, {Luna: 4}] Code> P> P>
Quelle est votre production attendue? Est-ce ceci:
[{MISTRAL: 4}, {Saya: 4}, {Luna: 4}] code> ou
["Mistral", "Saya", "Luna"] code>?