您的位置:首页 > Web前端 > JavaScript

js中数组迭代函数—(1)不生成新数组

2015-08-29 01:23 651 查看
不生成新数组的迭代器方法,它们要么对于数组中的每个元素执行某种操作,
要么返回一个值。

1、forEach(), 该方法接受一个函数作为参数,
对数组中的每个元素使用该函数

<script type="text/javascript">
function square(num) {
document.write(num * num+"\t");
}
function doEach(){
var nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ;
nums. forEach(square);
}
</script>

nums数组里面的每个元素都会以形参的形式传入square()去执行 一次。

2、every(),该方法接受一个返回值为布尔类型的函数,
对数组中的每个元素使用该函数。如果对于所有的元素, 该函数均返回 true,
则该方法返回 true。

<script type="text/javascript">
function isEven(num)
{
return num % 2 == 0;
}
function doEvery()
{
var nums = [2, 4, 6, 8, 10] ;
var even = nums. every(isEven);
if (even)
{
alert(" all numbers are even" );
}
else
{
alert(" not all numbers are even" );
}
}
</script>

3、some(),该方法也接受一个返回值为布尔类型的函数,
只要有一个元素使得该函数返回 true,该方法就返回 true。

<script type="text/javascript">
function isEven(num)
{
return num % 2 == 0;
}
function doSome()
{
nums = [1, 3, 5, 7, 9] ;
someEven = nums. some(isEven);
if (someEven)
{
document.write(" some numbers are even" );
}
else
{
document.write(" no numbers are even" );
}
}
</script>

4、reduce()
,该方法接受一个函数, 返回一个值。该方法会从一个累加值开始,
不断对累加值和

数组中的后续元素调用该函数, 直到数组中的最后一个元素, 最后返回得到的累加值。

<script type="text/javascript">
function add(runningTotal, currentValue)
{
return runningTotal + currentValue;
}
function doReduce()
{
var nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ;
var sum = nums. reduce(add);
document.write(sum);
}
</script>

5、reduceRight() 方法,和 reduce() 方法不同,
它是从右到左执行。

<script type="text/javascript">
function concat(accumulatedString, item)
{
return accumulatedString + item;
}
function doReduceRight()
{
var words = [" the " , " quick " , " brown " , " fox " ] ;
var sentence = words. reduceRight(concat);
document.write(sentence );
}
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: