SHOW:
|
|
- or go back to the newest paste.
| 1 | - | function arraySum(arr) {
|
| 1 | + | // declare function arraySum |
| 2 | - | var sum, i, j, cur; |
| 2 | + | function arraySum(i) {
|
| 3 | // var curentVal will hold current value of i[j] member | |
| 4 | - | sum = 0; |
| 4 | + | // at first value of sum is ZERO |
| 5 | var sum = 0; | |
| 6 | - | for (i = 0, j = arr.length; i < j; i++) {
|
| 6 | + | // i will be an array, containing integers, strings and/or arrays like itself. |
| 7 | - | cur = arr[i]; |
| 7 | + | // Sum all the integers you find, anywhere in the nest of arrays. |
| 8 | - | |
| 8 | + | |
| 9 | - | if (cur instanceof Array) {
|
| 9 | + | for(var j = 0; j < i.length; j++) {
|
| 10 | - | sum += arraySum(cur); |
| 10 | + | // curentVal = i[j]; |
| 11 | - | } else if (typeof cur === "number") {
|
| 11 | + | // if curentVal of i[j] is Array |
| 12 | - | sum += cur; |
| 12 | + | if(i[j] instanceof Array) {
|
| 13 | sum += arraySum(i[j]); | |
| 14 | } else if (typeof i[j] === 'number') {
| |
| 15 | sum += i[j]; | |
| 16 | } | |
| 17 | } | |
| 18 | return sum; | |
| 19 | } | |
| 20 | ||
| 21 | console.log(arraySum([[1,2,false],'4','5'])); // 3 | |
| 22 | console.log(arraySum([[1,2,3],4,5])); // 15 | |
| 23 | console.log(arraySum([[[[[[[[[1]]]]]]]], 1])); // 2 |