js 数组的几种数组遍历方法
foreach
遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE
//1 没有返回值
arr.forEach((item,index,array)=>{//执行代码
})
//参数:value数组中的当前项, index当前项的索引, array原始数组;
//数组中有几项,那么传递进去的匿名回调函数就需要执行几次
map
有返回值
map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);
arr.map(function(value,index,array){//do somethingreturn XXX
})
var ary = [12,23,24,42,1];
var res = ary.map(function (item,index,ary ) { return item*10;
})
console.log(res);//-->[120,230,240,420,10]; 原数组拷贝了一份,并进行了修改
console.log(ary);//-->[12,23,24,42,1]; 原数组并未发生变化
filter
不会改变原始数组,返回新数组
var arr = [{ id: 1, text: 'aa', done: true },{ id: 2, text: 'bb', done: false }
]
console.log(arr.filter(item => item.done))
转为ES5
arr.filter(function (item) {return item.done;
});
var arr = [73,84,56, 22,100]
var newArr = arr.filter(item => item>80) //得到新数组 [84, 100]
console.log(newArr,arr)
every
every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。返回布尔值
var arr = [ 1, 2, 3, 4, 5, 6 ];
console.log( arr.every( function( item, index, array ){ return item > 3;
}));
find
find()方法返回数组中符合测试函数条件的第一个元素。否则返回undefined
var stu = [{name: '张三',gender: '男',age: 20},{name: '王小毛',gender: '男',age: 20},{name: '李四',gender: '男',age: 20}
]
function getStu(element){return element.name == '李四'
}stu.find(getStu)
//返回结果为
//{name: "李四", gender: "男", age: 20}
ES6方法
stu.find((element) => (element.name == '李四'))
findIndex
返回索引值,如果没有符合条件的元素则返回-1
findIndex 不会改变数组对象。
[1,2,3].findIndex(function(x) { x == 2; });
// Returns an index value of 1.
[1,2,3].findIndex(x => x == 4);
// Returns an index value of -1.
keys,values,entries
ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for…of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历
for (let index of ['a', 'b'].keys()) {console.log(index);
}
// 0
// 1
for (let elem of ['a', 'b'].values()) {console.log(elem);
}
// 'a'
// 'b'
for (let [index, elem] of ['a', 'b'].entries()) {console.log(index, elem);
}
// 0 "a"
// 1 "b"
js 数组的几种数组遍历方法相关推荐
- matlab 遍历每个像素点,Mat中两种像素遍历方法比较
小白,入门中,不足其指正.刚刚接触opencv,从一个Matlab风格的编程环境突然跳转到C++,实在有些不适.单就pixels scanning花了好长时间研究.opencv-tutorials给出 ...
- Python实现二叉树的三种深度遍历方法!
python代码实现了二叉树,这次将会实现二叉树的几种遍历方法,来更好的解析二叉树的结构特点.分别是一种广度遍历,和三种深度遍历方法:先序遍历,中序遍历,后序遍历.下面是代码实现: 1.先序遍历 遍历 ...
- js常见的几种页面刷新方法
js常见的几种页面刷新方法如下: 1 history.go(0); 2 location.reload(); 3 location=location; 4 location.assign(locati ...
- php 遍历对象数组,js中遍历对象(5种)和遍历数组(6种)的方法总结
本篇文章给大家带来的内容是关于js中遍历对象(5种)和遍历数组(6种)的方法总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.遍历对象方法 1.for...in 遍历输出的是对 ...
- js中遍历数组加到新数组_JS几种数组遍历方式总结
JS数组遍历的几种方式 S数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一 ...
- JAVA数组中五种常见排序方法
前言: 几种常用的JAVA数组排序方法的整合. 法一:Arrays.sort() Arrays.sort()排序方法在java中是最简单且最常用的排序方法 int []arr1= {45,34,59, ...
- 转为字符数组_数组的20种常用的方法?
1.shift 删除数组中的第一个元素 2.pop 删除数组中的最后一个元素 3.unshift 增加元素在数组的前面 4.push 增加元素在数组的后面 5.map 循环,并且返回新的数组 6.fo ...
- 基于c语言矩阵数组透视变换,一种图像透视变换方法与流程
本发明属于图像处理的技术领域,尤其涉及一种图像透视变换方法. 背景技术: 透视变换是一种常见图像处理方法.透视变换常用于图象的校正,例如在移动机器人视觉导航研究中,由于摄像机与地面之间有一倾斜角,而不 ...
- javascript中的12种循环遍历方法1
1:for循环 let arr = [1,2,3]; for(let i =0;i<arr.length;i++){ console.log(i,arr[i]) } //for循环是js中最常用 ...
- 数据结构与算法 | 二叉树四种的遍历方法(递归与非递归)
二叉树的遍历是指从根节点出发,按照某种次序依次访问二叉树的所有节点,使得每个节点被访问且只访问一次. 而一般有四种遍历方法: 前序.中序.后序.层序,下面就分别讲一下四个遍历的思路以及代码实现 例如我 ...
最新文章
- 妹妹生了个女儿,纪念一下
- 计算机网络原理课程描述,计算机网络原理
- win32 断言函数和转换到COFF期间失败错误
- 从零开始入门 K8s | 应用编排与管理
- 关于 C语言的 按位取反 ~
- 2018.9.13,物理仿真实验作业1:测量结果的表示
- jQuery图片延迟加载插件jQuery.lazyload
- python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)
- 模块化Java简介(转载infoq)
- 数据科学高级分析 (Data science advanced analytics)
- docker安装bwapp
- 迪兰RX550超能4G,这玩意儿居然可以开核?!!
- 【刷题】清橙 A1339 JZPLCM(顾昱洲)
- 【地理坐标系、大地坐标系与地图投影与重投影详解】
- JAVA SE — Day 16
- 微信公众账号分为哪几类?区别是什么?
- 通过IP地址连接两台电脑
- oracle删除不了同义词,删除同义词,百科如何删除同义词项
- vue项目中使用ts入门
- anbox 使用情况_Anbox 实现分析 2:I/O 模型