实现数组求和的方法
基础知识回顾
- push():向数组末尾添加一个或多个元素
- unshift(): 向数组的开头添加一个或多个元素
- pop(): 删除数组最后一个元素
- shift(): 删除数组第一个元素
- sort(): 给数组排序
- reverse(): 颠倒数组项在数组中的位置
- concat(): 合并数组
- slice(): 指定的位置开始删除指定的数组项,并且将删除的数组项构建成一个新数组
- splice(): 对一个数组做删除、插入和替换
- indexOf(): 从前向后查找元素在数组中位置
- lastIndexOf(): 从后向前查找元素在数组中位置
- forEach()、every()、some()、filter()和map():数组迭代
- reduce(): 数组中的每个值(从左到右)开始合并,最终为一个值
- reduceRight(): 数组中的每个值(从右到左)开始合并,最终为一个值
数组求和
// 数组求和
var arr = [0, 1, 2, 3, 4, 5];
var sum = 0;
// for方法
for(var i = 0, len = arr.length; i < len; i++){
sum += arr[i];
}
// while方法
var len = arr.length - 1;
while (len > 0) {
sum += arr[len];
len --;
}
// forEach方法
arr.forEach(item => sum += item);
// some方法
// arr.some(item => sum+=item); // 1
arr.some(item => {sum+=item}); // 15
// map方法
arr.map(item => sum+=item);
// filter方法
arr.filter(item => sum+=item);
// every方法
// arr.every(item => {sum+=item}); // 0
arr.every(function (item) {
sum += item;
return true; // every方法是会在遇到回调函数返回的第一个false时停止遍历所以需要始终返回true
});
// reduce方法
// var sum = arr.reduce((prev, cur) => {prev + cur}); // 0
var sum = arr.reduce((prev, cur) => {return prev + cur}); // 15
console.log(sum);
思考:如何测试各代码运行时间长短?
JavaScript学习笔记:数组求和方法