Obtenez la plus grande valeur dans le tableau multidimensionnel javascript ou coffeescript
J'ai un tableau qui ressemble à ce qui suit:
array = [[1, 5], [4, 7], [3, 8], [2, 3],
[12, 4], [6, 6], [4, 1], [3, 2],
[8, 14]]
Ce dont j'ai besoin est le plus grand nombre à partir de la première valeur de la définit, dans ce cas,12
.
En regardant quelques exemples en ligne, la meilleure façon que j'ai vu pour accomplir cela est :
Math.max.apply Math, array
Problème est que cela ne fonctionne qu'avec un seul dimensions des tableaux. Comment aurais-je impliment cela pour mon senario? (jquery autorisé)
La fin de la solution:
Il ne faisait pas partie de la question, mais j'ai besoin de le min et le max de la matrice, et qui change un peu les choses.
unless device.IE
justTheDates = magnitudeArray.map (i) -> i[0]
@earliest = Math.min.apply Math, justTheDates
@latest = Math.max.apply Math, justTheDates
else
@earliest = magnitudeArray[0][0]
@latest = magnitudeArray[0][0]
for magnitudeItem in magnitudeArray
@earliest = magnitudeItem[0] if magnitudeItem[0] < @earliest
@latest = magnitudeItem[0] if magnitudeItem[0] > @latest
source d'informationauteur Fresheyeball
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
.reduce()
...Voici une version qui n'utilise pas
Math.max
......et un jsPerf test.
http://jsfiddle.net/zerkms/HM7es/
Si à première vous utilisez
array.map()
pour convertir le tableau en 2 dimensions à plat, et après que l'utilisationMath.max()
Une solution simple à l'aide de Underscore.js'
max
qui évite de générer un intermédiaire de tableau:(JSFiddle)
À l'aide d'une compréhension en CoffeeScript:
Exemple
Aussi, regardez _underscore.js. Voici un lien vers la fonction _max().
La meilleure partie au sujet de _ blanc souligné, c'est que, il ya environ une centaine d'autres fonctions d'assistance similaire à _max. Comme tri.
Comparer la syntaxe ci-dessous:
Ils sont faciles à chaîne, et d'interpréter!
(Comme Douglas Crockford pourrait suggérer)
Un excellent JSFIDDLEa été fourni dans ce post par @Raynos.
Si vous avez constamment la conduite d'opérations de matrice avec raw JavaScript, découvrez _underscore.js il peut grandement simplifier votre code.
Espère que ça aide,
Tout le meilleur!
Nash
Je sais que c'est un vieux post, mais si vous (ou quelqu'un d'autre) souhaitent que le plus grand nombre dans l'ensemble du tableau, essayez avec:
Dans ce examlpe, il sera de retour la valeur 14.
D'Entrée D'Échantillon:
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
Vous pouvez remplir plus grand nombre dans le nouveau Tableau à partir de deux dim tableau.