js数组的遍历(API)
1.for 循环
普通遍历方法,可优化,存下数组的length,避免每次都去获取数组的length,性能提升
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
2.for-in
不仅可遍历数组还可以遍历对象
for(key in obj)
该方法可以读取对象本身的成员属性,又可以遍历出对象的原型属性
3.forEach
无返值,可用return退出循环,不能用break退出循环
var str = "";
arr.forEach(function (ele,index,array) {
str+=ele;
});
alert(str);
4.map
有返回值,遍历后返回一新的数组,不改变原数组,返回什么都添加到数组中,相当于把数组的每一项变成return 的值
var arr2 = arr.map(function (ele,index,array) {
return ele+"你好";
}) console.log(arr2);
5.filter
有返回值,return为true的数组,不改变原数组,筛选,不改变数组每一项的值,筛选出满足条件的新数组
var arr1 = arr.filter(function (ele,index,array) {
if(ele.length>2){
return true;
}
return false;
}); console.log(arr1);
6.every
返回值为true或false,当数组的每一项都满足条件返回true,否则返回false,而参数是回调函数
var bool = arr.every(function (element,index,array) {
element = "aaa";
array[index] = "aaa";
if(element.length>2){
return false;
}
return true;
}); alert(bool);
7.find
对数组的每一个元素执行提供的函数,若有一个符合函数要求,则返回此数组的元素,结束循环,否则返回undefined
8.reduce
累加。空数组无返回值
js数组的遍历(API)的更多相关文章
- JS数组&对象遍历
遍历的总结,经常用到的,希望帮助你我成长. JS数组遍历: 1,普通for循环 var arr = [1,2,3,4,9]; for ( var i = 0; i <arr.length; i+ ...
- js数组string对象api常用方法
charAt() 方法可返回指定位置的字符. stringObject.charAt(index) indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. stringObject ...
- js 数组元素遍历
<html> <body> <script type="text/javascript"> var x var mycars = new Arr ...
- JavaScript数组循环遍历之forEach
1. js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式 2. forEac ...
- 转→js数组遍历 千万不要使用for...in...
看到一篇内容还不错,但是排版实在糟糕, 逼死强迫症患者啊,直接拉下去找原文连接,找到了,但是已经消失了···500错误... 第一次因为实在看不下去一篇博客的排版, 为了排版而转载... 转载地址:h ...
- 手写js代码(一)javascript数组循环遍历之forEach
注:原文地址http://blog.csdn.net/oscar999/article/details/8671546 我这里是仿照学习! 1.js的数组循环遍历 ①数组的遍历首先想到的是for()循 ...
- js数组遍历和对象遍历
针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历:还有性能,优缺点等. JS数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9]; for ( ...
- js 数组api
Javascript Array API JS数组对象提供了很多API方法,要用到的朋友可以查阅哈,如有错误欢迎指正. /** * Created by Administrator on 2017 ...
- JS 数组和对象的遍历方式,以及几种方式的比较。
通常我们会用循环的方式来遍历数组.但是循环是 导致js 性能问题的原因之一.一般我们会采用下几种方式来进行数组的遍历: 方式1: for in 循环: var arr = [1,2,3,4,5]; v ...
随机推荐
- 全国职业技能大赛信息安全管理与评估-第三阶段-弱口令自动爆破+读取Flag脚本
自动爆破SSH弱口令+读取Flag #coding=utf-8 import paramiko sshc = paramiko.SSHClient() sshc.set_missing_host_ke ...
- ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
问题描述: ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory 首先检 ...
- GitHub也会断供:美国制裁地区帐号都受限,毫无预警,个人页面直接404
请注意,GitHub也有断供危机. 如果你有GitHub私有库,是时候重新思考安全性,也是时候制定备份策略. 这不是杞人忧天,也不只温馨提示,而是已经发生的事实. 一位伊朗程序员,一觉醒来GitHub ...
- 斯坦福经典AI课程CS 221官方笔记来了!机器学习模型、贝叶斯网络等重点速查...
[导读]斯坦福大学的人工智能课程"CS 221"至今仍然是人工智能学习课程的经典之一.为了方便广大不能亲临现场听讲的同学,课程官方推出了课程笔记CheatSheet,涵盖4大类模型 ...
- coding++:快速构建 kindeditor 富文本编辑器(一)
此案例 demo 为 SpringBoot 开发 1.官网下载相关资源包:http://kindeditor.net/down.php 2.编写页面(引入相关JS) <!DOCTYPE html ...
- Python python 五种数据类型--字典
# 定义一个字典 var1 = {'a':20,'b':40}; var2 = dict(); print(type(var1)) print(type(var2)) # 长度 length = le ...
- 码云上开源JAVA项目收藏
一. 个人学习项目 1. BootDo面向学习型的开源框架 (可以当做 管理台脚手架) BootDo是高效率,低封装,面向学习型,面向微服的开源Java EE开发框架. BootDo是在SpringB ...
- Netty为什么不直接用AtomicXXX,而要用AtomicXXXFieldUpdater去更新变量呢?
更多技术分享可关注我 前言 如果仔细阅读过Netty的线程调度模型的源码,或者NIO线程对象及其线程池的创建源码,那么肯定会遇到类似“AtomicIntegerFieldUpdater”的身影,不禁想 ...
- 各种杂记关于Linux
修改Linux 日期 修改Linux时间
- 【cs224w】Lecture 3 - Motif, Graphlet 及 结构性角色
目录 Network Motifs Configuration Model Graphlets How to Find Motifs and Graphlets Structural Roles 转自 ...