本文实例讲述了 JS 中数组与对象的遍历方法. 分享给大家供大家参考, 具体如下:
一, 数组的遍历:
首先定义一个数组
arr=['snow','bran','king','nightking'];
1,for 循环, 需要知道数组的长度;
2,foreach, 没有返回值, 可以不知道数组长度;
- arr.forEach(function(ele,index){
- console.log(index);
- console.log(ele)
- })
3,map 函数, 遍历数组每个元素, 并回调操作, 需要返回值, 返回值组成新数组, 原数组不变;
- var newarr=arr.map(function(i){
- return "hello"+i
- });
- console.log(newarr)
4,filter 函数: 过滤通过条件的元素组成一个新数组, 原数组不变;
- var newarr=arr.filter(function(i){
- return i == "bran"
- });
- console.log(newarr)
5,some 函数, 遍历数组中是否有符合条件的函数, 返回布尔值;
- var yy=arr.some(function(i){
- return i.length>4
- });
- console.log(yy) //true
6,every 函数, 遍历数组是否每个元素都符合条件, 返回布尔值;
- var xx=arr.every(function(i){
- return i.length>4
- });
- console.log(xx) //false
7,reduce 函数, 为数组中的每一个元素依次执行回调函数
语法:
- arr.reduce(callback, initialValue)
- [0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
- return previousValue + currentValue;
- });
callback: 执行数组中每个值的函数, 包括四个参数;
previousValue: 上一次调用回调返回的值, 或者是提供的初始值 (initialValue);
currentValue: 当前被处理的值;
index: 当前元素在数组中的索引;
array: 调用 reduce 的数组;
initialValue: 作为第一次调用 callback 的第一个参数;
例如:
- var total = [0, 1, 2, 3].reduce(function(a, b) {
- return a + b;
- });
- // total == 6
- var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
- return a.concat(b);
- });
- // flattened is [0, 1, 2, 3, 4, 5]
要提供 initialValue 的话:
- var total = [0, 1, 2, 3].reduce(function(a, b) {
- return a + b;
- },4);
- console.log(total); //10
二, 对象的遍历
- var obj={snow:1,bran:2,king:3,nightking:4};
- for(let i in obj){
- console.log(i+','+obj[i])
- }
in 也可以用来遍历数组, 不过 i 对应于数组的 key 值:
- for(let i in arr){
- console.log(i+','+arr[i])
- }
PS: 这里再为大家推荐一款 JS 数组遍历方式分析对比工具供大家参考:
在线 JS 常见遍历方式性能分析比较工具: http://tools.jb51.net/aideddesign/js_bianli
更多关于 JavaScript 相关内容感兴趣的读者可查看本站专题:JavaScript 数组操作技巧总结,JavaScript 遍历算法与技巧总结,javascript 面向对象入门教程,JavaScript 数学运算用法总结,JavaScript 数据结构与算法技巧总结及JavaScript 错误与调试技巧总结
来源: http://www.jb51.net/article/145627.htm