关于js 迭代器方法

小云云
Lepaskan: 2017-12-06 15:03:10
asal
2069 orang telah melayarinya

迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。 js 数组的迭代器方法,分为两种:一种不生成新数组,一种产生新数组。

第一种方法:不产生任何新数组,相反,他们要么对于数组中的每个元素进行某种操作,要么返回一个值。

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

<script>
 function arr(num){console.log(num+1)};
 var array = [1,2,3,4,5,6];
 array.forEach(arr);
</script>
Salin selepas log masuk

2.every()和some(),这两个方法都是接受一个返回值为布尔类型的函数,对数组中的每一个元素使用该函数。every()方法是对于所有元素,该函数都返回true,该方法就返回true。而some()方法时只要有一个元素使用该函数返回true,该方法就返回true。

<br/>

<script>
 var  arr = [1,3,4,5,6,7,8];
function even(num){return num%2 ==0};
var sum = arr.every(even);
var  nums = arr.some(even);
console.log(sum)//false;
console.log(nums)//true;
Salin selepas log masuk
</script>
Salin selepas log masuk

3.reduce()方法接受一个函数,返回一个值。该方法会从一个累加值开始,不断对累加值和数组中的后续元素调用该函数,直到数组中的最后一个元素,最后返回得到的累加值。还可以把字符串数组元素连接成一个长字符串

<br/>

function add(total,num){return total+-*/num};
var arr =[1,2,3,4];
var sum = arr.reduce(add);
Salin selepas log masuk

js还提供了reduceRight()方法,不同的是他和reduce()方法顺序刚好相反,从右往左。<br/>第二种方法 生成新数组的迭代器方法

有两个迭代器方法可以产生新数组:map()和filter()。map()和forEach()有点像,对数组中的每个元素使用某个函数,两者区别在于map()返回一个新数组,该数组是对原有元素应用某个函数得到的结果。

<br/>

   function add(num) {
        return num+=5;
    }
    var words =[1,2,3,4,5];
    var sum =words.map(add);
console.log(sum);//[6,7,8,9,10]
Salin selepas log masuk

filter() 和every()类似,传入一个返回值为布尔类型的函数,和every()不同的是,当对数组中的所有元素应用该函数,结果均为true时,该方法并不返回true,而是返回一个新数组,该数组包含应用该函数后结果为true的元素。

<br/>

    function add(num) {
        return num%2 == 0;
    }
    var words =[1,2,3,4,5];
    var sum =words.filter(add);
console.log(sum);//[2,4];
Salin selepas log masuk
<br/>
Salin selepas log masuk

filter()还可以用于过滤字符串数组。例如:

<br/>

function add(str){if(str).indexOf("cie")>-1){return true;}return false;}
var words =["recieve","deceit","deceive"]
var miss = words.filter(add);
console.log(miss)//["recieve"]
Salin selepas log masuk

以上内容就是关于js 迭代器方法,希望能帮助到大家。

相关推荐:

如何使用php迭代器实现一个斐波纳契数列函数的实例分析

php的迭代器是什么

JavaScript迭代器模式如何实现和用法实例详解

Atas ialah kandungan terperinci 关于js 迭代器方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan