In programming, processing arrays is a very common operation. Among them, finding the average is also a very basic requirement. In JavaScript, there are multiple ways to achieve this functionality. Below we will introduce several common methods.
- Use for loop
The most basic method is to use for loop to traverse the array elements one by one, accumulate them, and finally divide by the length of the array to get the average .
function average(arr) { var sum = 0; for(var i = 0; i < arr.length; i++) { sum += arr[i]; } return sum / arr.length; }
In this function, a sum variable is first defined to store the cumulative result. Then use a for loop to traverse the entire array, adding the value of the current element to sum each time. Finally, divide sum by the length of the array to get the average.
- Use the reduce method
The reduce method is a method that comes with the array prototype object in JavaScript. It receives a callback function and an initial value, and then sequentially Each element and the previous accumulated result are passed into the callback function, and the final result is calculated. Therefore, we can use the reduce method to achieve averaging.
function average(arr) { var sum = arr.reduce(function(prev, cur) { return prev + cur; }, 0); return sum / arr.length; }
In this function, we first use the reduce method to accumulate all the elements in the array, and assign the final result to the sum variable. Then divide sum by the length of the array to get the average.
- Use ES6’s arrow function and Array.prototype.reduce method
In ES6, we can use arrow function and Array.prototype.reduce method to implement it more concisely The operation of finding the average.
const average = arr => arr.reduce((prev, cur) => prev + cur, 0) / arr.length;
In this function, we use the arrow function to define the callback function, and use the reduce method to accumulate all the elements in the array, divide the final result by the length of the array, and return it together. Thanks to the syntactic sugar of arrow functions, the code appears very concise.
Summary
The above three methods are all classic methods of finding averages. The method of using for loop is relatively basic and suitable for beginners to understand. Using the reduce method can reduce the amount of code and make the code structure clearer. It is also more suitable for the idea of ??functional programming. Using ES6 arrow functions and the Array.prototype.reduce method can further simplify the code. In actual development, we can choose one of the methods to implement the averaging operation according to actual needs.
The above is the detailed content of javascript find average. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

ToimplementdarkmodeinCSSeffectively,useCSSvariablesforthemecolors,detectsystempreferenceswithprefers-color-scheme,addamanualtogglebutton,andhandleimagesandbackgroundsthoughtfully.1.DefineCSSvariablesforlightanddarkthemestomanagecolorsefficiently.2.Us

The topic differencebetweenem, Rem, PX, andViewportunits (VH, VW) LiesintheirreFerencepoint: PXISFixedandbasedonpixelvalues, emissrelative EtothefontsizeFheelementoritsparent, Remisrelelatotherootfontsize, AndVH/VwarebaseDontheviewporttimensions.1.PXoffersprecis

CSSHoudini is a set of APIs that allow developers to directly manipulate and extend the browser's style processing flow through JavaScript. 1. PaintWorklet controls element drawing; 2. LayoutWorklet custom layout logic; 3. AnimationWorklet implements high-performance animation; 4. Parser&TypedOM efficiently operates CSS properties; 5. Properties&ValuesAPI registers custom properties; 6. FontMetricsAPI obtains font information. It allows developers to expand CSS in unprecedented ways, achieve effects such as wave backgrounds, and have good performance and flexibility

ReactivitytransforminVue3aimedtosimplifyhandlingreactivedatabyautomaticallytrackingandmanagingreactivitywithoutrequiringmanualref()or.valueusage.Itsoughttoreduceboilerplateandimprovecodereadabilitybytreatingvariableslikeletandconstasautomaticallyreac

Choosing the correct display value in CSS is crucial because it controls the behavior of elements in the layout. 1.inline: Make elements flow like text, without occupying a single line, and cannot directly set width and height, suitable for elements in text, such as; 2.block: Make elements exclusively occupy one line and occupy all width, can set width and height and inner and outer margins, suitable for structured elements, such as; 3.inline-block: has both block characteristics and inline layout, can set size but still display in the same line, suitable for horizontal layouts that require consistent spacing; 4.flex: Modern layout mode, suitable for containers, easy to achieve alignment and distribution through justify-content, align-items and other attributes, yes

CSSgradientsenhancebackgroundswithdepthandvisualappeal.1.Startwithlineargradientsforsmoothcolortransitionsalongaline,specifyingdirectionandcolorstops.2.Useradialgradientsforcirculareffects,adjustingshapeandcenterposition.3.Layermultiplegradientstocre

InternationalizationandlocalizationinVueappsareprimarilyhandledusingtheVueI18nplugin.1.Installvue-i18nvianpmoryarn.2.CreatelocaleJSONfiles(e.g.,en.json,es.json)fortranslationmessages.3.Setupthei18ninstanceinmain.jswithlocaleconfigurationandmessagefil

In Vue, provide and inject are features for directly passing data across hierarchical components. The parent component provides data or methods through provide, and descendant components directly inject and use these data or methods through inject, without passing props layer by layer; 2. It is suitable for avoiding "propdrilling", such as passing global or shared data such as topics, user status, API services, etc.; 3. Note when using: non-responsive original values ??must be wrapped into responsive objects to achieve responsive updates, and should not be abused to avoid affecting maintainability.
