数码资讯
javascript学习笔记的数组求和法
推荐阅读:增加、删除、修改和检查Javascript学习笔记数组 在最近的研究中,越来越多的意识的力量和魅力,Javascript,只是一个单一的知识点,有一个像我这样的初学者很长一段时间。折腾是折腾,但它仍然是非常有效的,这些天学习的一些基本知识,在自己的企业使用。我从Xinxinbaopeng,
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
推荐阅读:增加、删除、修改和检查Javascript学习笔记数组
在最近的研究中,越来越多的意识的力量和魅力,Javascript,只是一个单一的知识点,有一个像我这样的初学者很长一段时间。折腾是折腾,但它仍然是非常有效的,这些天学习的一些基本知识,在自己的企业使用。我从Xinxinbaopeng,我也有一天学习Javascript。
我们不多说了。让我们今天玩数组求和,看看用什么方法可以得到数组。
阵列的方法
Javascript中数组的方法很多。下面的图表可以更好地向您解释Javascript有多少种方法,效果是什么:
对以往学习知识的简要回顾:
推送():在数组的结尾添加一个或多个元素
Unshift():添加一个或多个元素的数组的开始
POP():删除数组的最后一个元素
移位():删除数组的第一个元素
排序():订购数组
反转():反转数组中数组项的位置。
Concat():合并数组
片段():指定的位置开始删除指定的数组项,并构造一个被删除的数组项以构建一个新数组。
Splice():删除、插入和替换数组
indexOf():前者的搜索元素在数组中的位置
LastIndexOf():找到的元素在数组中的位置从后向前
foreach(),每(),(),()滤波器的一些,和地图():数组迭代
减少():数组中的每个值(从左到右)开始合并,最后是一个值。
ReduceRight():数组中的每个值(从右到左)开始合并,最终值
数组求和
今天的用例,假设我们有一个数组,比如:
var arr = { 0,1,2,3,4,5,6,7,8,9 };
你需要在阵列为0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9.我们要添加的项的值,或者是什么方法,我们能做的。在一个简单的方法,你想添加一个数组项之一。是数组迭代可以用这些方法来实现数组的求和吗
循环与while循环
第一个要考虑的是两个循环方法,在上一节中已经尝试过了:
/ /总结:循环遍历数组arr
(函数(){())
var总和= 0;
功能getsum(阵列){
对于(var i = 0;i < array.length;i++){
总和= parseInt(数组{我});
}
收起回复;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
总和= 0;
GetSum(ARR);
}
Console.timeEnd(getsum ); / / 7877.155ms
console.log(:金额+和=); / / 45
});
而另一个时间看:
(函数(){())
var总和= 0;
功能getsum(阵列){
var i = array.length;
当(i){
总和= parseInt(数组{我});
}
收起回复;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
GetSum(ARR);
}
Console.timeEnd(getsum ); / / getsum:7690.056ms
console.log(而:金额= +金额); / /而周期:金额= 45
});
除了老for和while循环,其他数组迭代的方法已经被添加到ES5,如foreach(),每(),(),()的一些滤波和地图(),所有这些方法允许在阵列执行一个回调函数的每个元素。如果它来了,只是这个回调函数做一个数组项累计功能:
功能getsum(项目、指标、阵列){
总和=项;
}
foreach()方法
foreach()方法允许每个项目的数组来执行一个给定的回调函数callbackfn。这样,我们可以在回调函数中getsum做累积计算。
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
arr.foreach(getsum);
}
Console.timeEnd(getsum ); / / getsum:1348.212ms
console.log(foreach:金额= +金额); / / foreach循环:金额= 45
})
一些()方法
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
arr.some(getsum);
}
Console.timeEnd(getsum ); / / getsum:1038.737ms
console.log(一些:金额= +金额); / /一些周期:金额= 45
})
映射()方法
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
Arr.map(getsum);
}
Console.timeEnd(getsum ); / / getsum:4568.558ms
console.log(地图:金额= +金额); / /图周期:金额= 45
})
过滤器()方法
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
Arr.filter(getsum);
}
Console.timeEnd(getsum ); / / getsum:1117.039ms
console.log(过滤器:金额= +金额); / /过滤周期:金额= 45
})()
每一种方法
每个()方法与以前的方法略有不同,因为每个()方法只在回调函数执行时返回数组中的每个函数,如果连接部分为true,结果将返回,否则返回false,因为在前面的回调函数中,需要返回true;
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
返回true;每一个方法在第一次遍历时都会停止,否则会遇到回调返回,所以需要总是返回true。
};
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
总和= 0;
arr.every(getsum);
}
Console.timeEnd(getsum ); / / 1028.892ms
console.log(每笔+和=); / /每周期:金额= 45
});
减少()和()方法reduceright
减少()和()reduceright方法可以接受一个回调函数callbackfn蓄电池(蓄电池),与数组中的每个值(从左至右)合并,最后是值。这样,每个元素可以被添加到数组实现数组求和函数。
首先创建累加器的回调函数:
功能getsum(预测值,curvalue,索引数组){
收益预测值= curvalue;
}
也以前面的数组为例:
功能getsum(预测值,curvalue,索引数组){
收益预测值+ curvalue;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
arr.reduce总和=(getsum,0)
}
Console.timeEnd(getsum ); / / 3257.201ms
console.log(减少:金额+和=); / /减少周期:金额= 45
考试前,减少()方法成本最短的时间,测试似乎花费了很长时间,不知道哪里出错,也希望上帝能指导。
的reduceright()方法是为减少相同()方法,但他会从数组的右到左。
总结
一个接一个操作,数组的总和基本上是通过数组遍历实现的。如果我们掌握各种遍历方法,数组,我们可以很容易地实现数组的总和。虽然这些遍历方法允许对数组的实现的总和,不同的方法各有不同的表现。在文章中的例子可能不能完全解释他们的性能比较,如果你有更好的建议,欢迎分享。
以上内容是全面介绍数组搜索法的javascript学习笔记,希望对大家有所帮助!
在最近的研究中,越来越多的意识的力量和魅力,Javascript,只是一个单一的知识点,有一个像我这样的初学者很长一段时间。折腾是折腾,但它仍然是非常有效的,这些天学习的一些基本知识,在自己的企业使用。我从Xinxinbaopeng,我也有一天学习Javascript。
我们不多说了。让我们今天玩数组求和,看看用什么方法可以得到数组。
阵列的方法
Javascript中数组的方法很多。下面的图表可以更好地向您解释Javascript有多少种方法,效果是什么:
对以往学习知识的简要回顾:
推送():在数组的结尾添加一个或多个元素
Unshift():添加一个或多个元素的数组的开始
POP():删除数组的最后一个元素
移位():删除数组的第一个元素
排序():订购数组
反转():反转数组中数组项的位置。
Concat():合并数组
片段():指定的位置开始删除指定的数组项,并构造一个被删除的数组项以构建一个新数组。
Splice():删除、插入和替换数组
indexOf():前者的搜索元素在数组中的位置
LastIndexOf():找到的元素在数组中的位置从后向前
foreach(),每(),(),()滤波器的一些,和地图():数组迭代
减少():数组中的每个值(从左到右)开始合并,最后是一个值。
ReduceRight():数组中的每个值(从右到左)开始合并,最终值
数组求和
今天的用例,假设我们有一个数组,比如:
var arr = { 0,1,2,3,4,5,6,7,8,9 };
你需要在阵列为0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9.我们要添加的项的值,或者是什么方法,我们能做的。在一个简单的方法,你想添加一个数组项之一。是数组迭代可以用这些方法来实现数组的求和吗
循环与while循环
第一个要考虑的是两个循环方法,在上一节中已经尝试过了:
/ /总结:循环遍历数组arr
(函数(){())
var总和= 0;
功能getsum(阵列){
对于(var i = 0;i < array.length;i++){
总和= parseInt(数组{我});
}
收起回复;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
总和= 0;
GetSum(ARR);
}
Console.timeEnd(getsum ); / / 7877.155ms
console.log(:金额+和=); / / 45
});
而另一个时间看:
(函数(){())
var总和= 0;
功能getsum(阵列){
var i = array.length;
当(i){
总和= parseInt(数组{我});
}
收起回复;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
GetSum(ARR);
}
Console.timeEnd(getsum ); / / getsum:7690.056ms
console.log(而:金额= +金额); / /而周期:金额= 45
});
除了老for和while循环,其他数组迭代的方法已经被添加到ES5,如foreach(),每(),(),()的一些滤波和地图(),所有这些方法允许在阵列执行一个回调函数的每个元素。如果它来了,只是这个回调函数做一个数组项累计功能:
功能getsum(项目、指标、阵列){
总和=项;
}
foreach()方法
foreach()方法允许每个项目的数组来执行一个给定的回调函数callbackfn。这样,我们可以在回调函数中getsum做累积计算。
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
arr.foreach(getsum);
}
Console.timeEnd(getsum ); / / getsum:1348.212ms
console.log(foreach:金额= +金额); / / foreach循环:金额= 45
})
一些()方法
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
arr.some(getsum);
}
Console.timeEnd(getsum ); / / getsum:1038.737ms
console.log(一些:金额= +金额); / /一些周期:金额= 45
})
映射()方法
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
Arr.map(getsum);
}
Console.timeEnd(getsum ); / / getsum:4568.558ms
console.log(地图:金额= +金额); / /图周期:金额= 45
})
过滤器()方法
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
var总和= 0;
Arr.filter(getsum);
}
Console.timeEnd(getsum ); / / getsum:1117.039ms
console.log(过滤器:金额= +金额); / /过滤周期:金额= 45
})()
每一种方法
每个()方法与以前的方法略有不同,因为每个()方法只在回调函数执行时返回数组中的每个函数,如果连接部分为true,结果将返回,否则返回false,因为在前面的回调函数中,需要返回true;
(函数(){())
var总和= 0;
功能getsum(项目、指标、阵列){
总和=项;
返回true;每一个方法在第一次遍历时都会停止,否则会遇到回调返回,所以需要总是返回true。
};
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
总和= 0;
arr.every(getsum);
}
Console.timeEnd(getsum ); / / 1028.892ms
console.log(每笔+和=); / /每周期:金额= 45
});
减少()和()方法reduceright
减少()和()reduceright方法可以接受一个回调函数callbackfn蓄电池(蓄电池),与数组中的每个值(从左至右)合并,最后是值。这样,每个元素可以被添加到数组实现数组求和函数。
首先创建累加器的回调函数:
功能getsum(预测值,curvalue,索引数组){
收益预测值= curvalue;
}
也以前面的数组为例:
功能getsum(预测值,curvalue,索引数组){
收益预测值+ curvalue;
}
console.time(getsum );
对于(var i = 0;i < 1000000;i + +){
arr.reduce总和=(getsum,0)
}
Console.timeEnd(getsum ); / / 3257.201ms
console.log(减少:金额+和=); / /减少周期:金额= 45
考试前,减少()方法成本最短的时间,测试似乎花费了很长时间,不知道哪里出错,也希望上帝能指导。
的reduceright()方法是为减少相同()方法,但他会从数组的右到左。
总结
一个接一个操作,数组的总和基本上是通过数组遍历实现的。如果我们掌握各种遍历方法,数组,我们可以很容易地实现数组的总和。虽然这些遍历方法允许对数组的实现的总和,不同的方法各有不同的表现。在文章中的例子可能不能完全解释他们的性能比较,如果你有更好的建议,欢迎分享。
以上内容是全面介绍数组搜索法的javascript学习笔记,希望对大家有所帮助!
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。