Maison >interface Web >js tutoriel >Comment additionner et trouver la valeur maximale des tableaux JS

Comment additionner et trouver la valeur maximale des tableaux JS

高洛峰
高洛峰original
2017-01-14 10:42:311624parcourir

Avant-propos

J'ai rencontré un problème lors de l'interview : la fonction de somme de tableau JS. La première chose qui me vient à l’esprit est le bouclage de tableaux. Cependant, j'estime que lorsque l'intervieweur pose cette question, il ne doit pas chercher à tester cette méthode bien connue. À cette époque, j'étais assez intelligent pour penser à une fonction récursive qui ajoute continuellement les éléments du tableau. Cependant, j'ai longtemps lutté et je n'ai pas réussi à ajuster la méthode. Il s'est avéré que ce n'était pas la solution optimale. Finalement, l’intervieweur m’a demandé si j’avais déjà vu réduire(), et je ne l’ai vraiment pas fait. Je suis donc revenu pour vérifier les informations. Array.reduce() est un nouvel attribut ajouté par ES5, et Array.reduceRight() est similaire.

Ce qui suit résume la méthode de sommation de tableau.

La méthode la plus grossière : Boucler pour obtenir

Ajouter élément par élément via une boucle for. Regardez le code :

Array.prototype.sum = function (){
 var result = 0;
 for(var i = 0; i < this.length; i++) {
  result += this[i];
 }
 return result;
};
 
[1,4,7,2,10].sum(); // 24

Utilisez la méthode de réduction

En utilisant la méthode de réduction, vous pouvez écrire une méthode de somme pour la sommation de tableaux.

La méthode réduire() reçoit une fonction comme accumulateur. Chaque valeur du tableau (de gauche à droite) commence à être réduite, et devient finalement une valeur.

Syntaxe de réduction :

array.reduce(callback[, initialValue]);

La fonction de rappel accepte 4 paramètres : previousValue (la valeur renvoyée par le dernier appel de rappel), currentValue (l'élément en cours de traitement ) ), index (index) et le tableau lui-même (le premier paramètre du premier rappel), exécutent la fonction pour chaque valeur du tableau.

Le paramètre initialValue est facultatif et représente la valeur initiale ; si le paramètre initialValue est spécifié, il sera considéré comme la valeur précédente initialement utilisée. S'il est par défaut, le premier élément du tableau sera utilisé comme. la valeur initiale du précédent et du courant sera utilisée plus tard.

Array.prototype.sum = function (){
 return this.reduce(function (partial, value){
  return partial + value;
 })
};
[1,4,7,2,10].sum(); // 24

Par rapport à la première méthode, l'utilisation de la méthode réduire() est plus efficace.

Pour comparer l'efficacité de ces deux méthodes, vous pouvez appeler directement new Date() avant et après l'exécution de la fonction pour obtenir l'heure en temps réel, afin de comparer le temps d'exécution à travers le décalage horaire. Il n’y aura pas de comparaison ici, car l’environnement d’exécution de chacun est très différent. Le résultat du test est que le temps d’exécution de la méthode réduire() est plus court.

Fonction de somme de tableau JS et trouver la valeur maximale dans le tableau

Exemple de code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 
<title>php中文网_js数组求和和最大值方法_php中文网</title>
 
<meta name="keywords" content="站长,网页特效,网页特效代码,js特效,js脚本,脚本,广告代码,php.cn,www.php.cn,php中文网" />
 
<meta name="description" content="www.php.cn,php中文网,站长必备js特效及广告代码。大量高质量js特效,提供高质量广告代码下载,尽在php中文网" />
 
</head>
 
<body>
 
<a href="http://www.php.cn/">php中文网<</a>,站长必备的高质量网页特效和广告代码。jb51.net,站长js特效。<hr>
 
<script type="text/javascript">
 
//求和
 
Array.prototype.sum = function () {
 
 for (var sum = i = 0; i < this.length; i++)sum += parseInt(this[i]);
 
  return sum ;
 
};
 
//求最大值
 
Array.prototype.maxima = function () {
 
 for (var i = 0, maxValue = Number.MIN_VALUE; i < this.length; i++)parseInt(this[i]) > maxValue && (maxValue = this[i]);
 
 return maxValue;
 
};
 
//应用
 
var arr = [1,21,3,4,22,45,60,7,32];
 
alert(arr.join("+") + "=" + arr.sum()); alert(arr.join("|") + "中, 最大的数是:" + arr.maxima());
 
</script>
 
</body>
 
</html>

Ce qui précède est le contenu de cet article Tout le contenu, j'espère qu'il sera utile à tout le monde dans l'utilisation de JavaScript. Si vous avez des questions, veuillez laisser un message pour discussion et l'éditeur vous répondra à temps.

Pour plus d'articles partageant les méthodes de sommation et de maximisation des tableaux JS, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn