题解 | #数组求和#

数组求和

https://www.nowcoder.com/practice/cc3ce199461c4c4cb8f63db61d7eba30

function sum(arr) {
    let sum = 0;
    for(let i of arr){
        sum += i;
    }
    return sum;
}
function sum(arr) {
    let sum = 0;
    for(let i in arr) {
        sum += arr[i];
    }
    return sum;
}
function sum(arr) {
    let sum = 0;
    arr.forEach(item => sum += item);
    return sum;
}
function sum(arr) {
    return arr.reduce((a, b) => a + b, 0);
}

在 JavaScript 中,let i in arrlet i of arr 都是用来遍历数组的语句,但它们的行为略有不同。

let i in arr 遍历的是数组的索引或对象的属性名称,返回的是一个字符串类型的索引或属性名称。例如:

javascriptCopy codeconst arr = ['a', 'b', 'c'];

for (let i in arr) {
  console.log(i); // 0, 1, 2
  console.log(typeof i); // string
}

在上面的例子中,i 是字符串类型的索引。

let i of arr 遍历的是数组中的元素,返回的是该元素的值。例如:

javascriptCopy codeconst arr = ['a', 'b', 'c'];

for (let i of arr) {
  console.log(i); // 'a', 'b', 'c'
  console.log(typeof i); // string
}

在上面的例子中,i 是字符串类型的元素值。

因此,如果要遍历数组的元素,应该使用 let i of arr,如果要遍历数组的索引或对象的属性名称,应该使用 let i in arr

在JavaScript中,forEach()方法用于遍历数组中的元素,对每个元素执行一个回调函数。该方法不返回新的数组,而是在原数组上进行操作。

forEach()方法的语法如下:

Copy codearray.forEach(callback(currentValue[, index[, array]])[, thisArg]);

其中,参数callback是必需的,表示要对每个元素执行的函数。参数currentValue是必需的,表示当前被处理的元素。参数index是可选的,表示当前元素在数组中的索引。参数array是可选的,表示正在处理的数组。参数thisArg是可选的,表示在执行回调函数时要使用的this值。

下面是一个简单的示例,展示如何使用forEach()方法遍历数组并打印每个元素的值:

var array = [1, 2, 3, 4, 5];

array.forEach(function(element) {
  console.log(element);
});

这将输出以下内容:

1
2
3
4
5

在这个示例中,我们定义了一个名为array的数组,然后使用forEach()方法遍历它。在回调函数中,我们打印了当前元素的值。注意,我们没有使用index或array参数。如果需要使用它们,可以在回调函数中包含它们。

JavaScript中的reduce方法可以用来对数组中的所有元素进行累加、累乘、字符串拼接等操作。它接受一个回调函数作为参数,该函数可以接受四个参数:累加器(accumulator)、当前值(currentValue)、当前索引(currentIndex)、原数组(array)。

reduce方法的基本语法如下:

array.reduce(callback[, initialValue]);

其中,callback是回调函数,initialValue是可选的初始值。如果指定了initialValue,则第一次调用回调函数时accumulator的值为initialValue,否则accumulator的值为数组中的第一个元素。

下面是一个简单的例子,演示如何使用reduce方法对数组中的所有元素求和:

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出15

在上面的例子中,reduce方法首先将accumulator的值设为0,然后依次将数组中的元素累加到accumulator中,最终得到了所有元素的和。

除了累加操作之外,reduce方法还可以用于其他类型的累计操作,例如字符串拼接、对象合并等。下面是一个使用reduce方法将数组中的所有元素转换为字符串的例子:

const fruits = ['apple', 'banana', 'cherry'];
const fruitString = fruits.reduce((accumulator, currentValue) => accumulator + ',' + currentValue);
console.log(fruitString); // 输出"apple,banana,cherry"

在上面的例子中,reduce方法首先将accumulator的值设为数组中的第一个元素("apple"),然后将每个元素依次拼接到accumulator中,最终得到了一个由所有元素组成的字符串。

全部评论

相关推荐

02-19 12:50
黑龙江大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务