不生成新数组的迭代器方法,它们要么对于数组中的每个元素执行某种操作,
要么返回一个值。
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>
<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>
<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>