简体   繁体   中英

Use a for of loop to calculate multiply elements in an array

I'm a newbie to JavaScript and I have an exercise about for...of but it failed. It returned NaN .

Where am I doing wrong and what do I need?

Code:

 var arr = []; function multiply(arr) { for (var a of arr) { a *= arr[a]; } return a; } console.log(multiply([2, 3, 4])); // expect: 24 

See your code modified below. Now working:

 var arr = undefined; function multiply(arr) { if (!arr || !arr.length) { // if the array is undefined or has no elements, return null return null; } // otherwise, continue to do the calculation, it's an array with values var result = 1; // start our result in 1 for (var a of arr) { result *= a; // increase the result by multiplying the // previous value for every value in the array } return result; // finally return } console.log(multiply([2, 3, 4])); // expect: 24 console.log(multiply([])); // expect: null: 0 elements console.log(multiply(arr)); // expect: null: arr var is undefined console.log(multiply()); // expect: null: no argument provided 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM