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

来源:互联网 发布:松下fpwin编程手册 编辑:程序博客网 时间:2024/06/05 14:54
不生成新数组的迭代器方法它们要么对于数组中的每个元素执行某种操作, 要么返回一个值。
 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(runningTotalcurrentValue) 
{
    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(accumulatedStringitem) 
{
    return accumulatedString + item;
}
function doReduceRight()
{
    var words = [" the " , " quick " , " brown " , " fox " ] ;
    var sentence = words. reduceRight(concat);
    document.write(sentence );
}
</script>
0 0
原创粉丝点击