当前位置: 首页 > news >正文

数组遍历的方法(loop)

总结遍历数组的方法

let arr=[1,3,6,8];
复制代码
  1. 方法1:
for(let i=0,len=arr.length;i<len;i++){
    console.log(arr[i]);
}
复制代码
  1. forEach
arr.forEach((item,index,array)=>{
    console.log(item);
})
复制代码
  1. map
arr.map((item,index,array)=>{
    return item
})
复制代码
  1. for in
for(i in arr){
    console.log(1);//0,1,2... 数组下标
}
复制代码
  1. for of
for(item of arr){
    console.log(item);//1,3,6...
}
for(item of arr.values()){
    console.log(item);//1,3,6...
}
for(key of arr.keys()){
    console.log(key);//0,1,2... 
}
for(entry of arr.entries()){
    console.log(entry);//[0,1],[1,3],[2,6],...
}
复制代码
  1. iterator (next()方法 两个属性 done, value)
1.values
var val=arr.values();
var values;
while(!(values=val.next()).done){
   console.log( values.value);//1,3,6...
}
2.keys
var key=arr.keys();
var keys;
while(!(keys=key.next()).done){
    console.log(keys.value);//0,1,2...
}
3.entries
var entry=arr.entries();
var entries;
while(!(entries=entry.next()).done){
    console.log(entries.value);//[0,1],[1,3],...
}
复制代码
  1. Array-Like
1. use spread syntax (...);
let arr=[...NodeList];
2.Array.form();
var arr=Array.form(NodeList);
3.slice();
let arr=Arrya.prototype.slice().call(NodeList);;
4.forEach;
Array.prototype.forEach.call(NodeList,(item,index,arr)=>{

});
5.for of
复制代码

for... in /for ... of 区别

参考一篇博客https://www.zhangxinxu.com/wordpress/2018/08/for-in-es6-for-of/
博客的总结语:对于纯对象的遍历for..in要厉害一些;对于数组遍历,如果不需要知道索引,for..of迭代更合适,因为还可以中断;如果需要知道索引,则forEach()更合适;对于其他字符串,类数组,类型数组的迭代,for..of优势非常明显。

相关文章:

  • 18-10-11
  • clipboard.js无法复制粘贴
  • android SAF存储访问框架
  • Oracle SQL执行计划基线总结(SQL Plan Baseline)
  • php相关笔记
  • Scss 与 Sass 是什么,他们的区别在哪里?
  • adb connect命令连接多个Android设备
  • python(二) urllib2.URLError
  • nunit单元测试详解
  • c博客作业01--顺序、分支结构
  • 709. 转换成小写字母
  • Java : java基础(4) 线程
  • rdlc 分页操作和分页统计
  • 高度塌陷问题(overflow与clear)
  • 非结构化数据与结构化数据提取--- 糗事百科案例
  • 【刷算法】求1+2+3+...+n
  • export和import的用法总结
  • Phpstorm怎样批量删除空行?
  • SpriteKit 技巧之添加背景图片
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 力扣(LeetCode)56
  • 巧用 TypeScript (一)
  • 使用 Docker 部署 Spring Boot项目
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (13):Silverlight 2 数据与通信之WebRequest
  • (145)光线追踪距离场柔和阴影
  • (16)Reactor的测试——响应式Spring的道法术器
  • (TOJ2804)Even? Odd?
  • (办公)springboot配置aop处理请求.
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十六)串口UART
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • **PHP二维数组遍历时同时赋值
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET 指南:抽象化实现的基类
  • .NET 中 GetProcess 相关方法的性能
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET6实现破解Modbus poll点表配置文件
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .Net的C#语言取月份数值对应的MonthName值
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @Conditional注解详解