看了ES6就感觉各种数据结构的遍历方法好多好混乱,就写下来总结下,看看应用场景上有什么区别

Array:

ES5:

(1)Array.prototype.forEach(function(item,index,array){...})

(2)Array.prototype.map(function(value,index,array){...//return value,该值会被插入新数组})映射为一个新数组

(3)Array.prototype.some(function(item){...//条件})数组中某一项满足则停止执行,并且返回true

(4)Array.prototype.every(function(item){...//条件})数组中有一项不满足则停止执行,并且返回false.

(5)Array.prototype.filter(function(item){...//return true或者false})返回过滤后的新数组

(6)Array.prototype.indexOf(item)

(7)Array.prototype.lastIndexOf(item)

(8)Array.prototype.reduce(function (previous, current, index, array) {...return value//返回值作为下一次循环的previous的值})

(9)Array.prototype.reduceRight同上,但是index的初始值为array.length-1

ES6:

(1)Array.from(parameter),用的最多应该是将set转化为Array,或者将元素选择器的结果转化为数组

(2)Array.of(parameter)消除new Array(parameter)由于参数个数不同而出现的重载

(3)Array.prototype.copyWithin(target, start = 0, end = this.length)没想到有什么好用的

(4)Array.prototype.find(function(value, index, arr) {...//条件})找到第一个返回值为true的成员

(5)Array.prototype.findIndex(function(value.index,arr){...//条件})作用同上,返回index

(6)Array.prototype.keys()获取键名遍历器

(7)Array.prototype.values()获取键值遍历器

(8)Array.prototype.entries()获取键值对遍历器

Set数据结构

该数据结构更新或创建时会去重,类似===但是在这里NAN和NAN是相等的

(1)Set.prototype.add(parameter)

(2)Set.prototype.delete(parameter)

(3)Set.prototype.has(parameter)

(4)Set.prototype.clear()

(5)Set.prototype.keys()返回键名的遍历器

(6)Set.prototype.values()返回键值遍历器

(7)Set.prototype.entries()返回键值对遍历器

(8)Set.prototype.forEach(function(value.key,set){})遍历

Map数据结构

键值对的集合,但是键名可以为对象,当键名为对象时判断他的内存地址相同则认为键名相同

(1)Map.prototype.set(key,value)

(2)Map.prototype.get(key)

(3)Map.prototype.has(key)

(4)Map.prototype.delete(key)

(5)Map.prototype.clear()

(6)Map.prototype.keys()

(7)Map.prototype.values()

(8)Map.prototype.entries()

(9)Map.prototype.forEach(function(value,key,map){...})

这里需要注意map和json的转换,具体可以参考阮一峰的文章

总结,个人感觉set和array除了去重没什么区别,而且他们之间可以相互转换,想不出来有应用场景上的区别。map对象则相比ES5的时候的Object对象,觉得更加方便遍历,而且键名可以为对象。

es6遍历树结构并判断_ES6和ES5中数据结构的遍历相关推荐

  1. 层序遍历 和 基于栈实现的先\中\后序遍历

    层序遍历 和 基于栈实现的先/中/后序遍历 1 层序遍历 level order traversal 2 基于栈实现的先/中/后序遍历 pre/in/post order traversal 1 层序 ...

  2. es6遍历树结构并判断_递归遍历树结构,从某个节点开始查找其子节点中的所有叶子节点...

    背景 现在项目中哟这样的一个需求,左边显示一棵树目录,点击目录的一级或二级节点,右边显示其子节点中的所有叶子节点,而且要求前端来做这个,不用调用接口请求了,那么,这里记录一下我的实现方法.点击叶子节点 ...

  3. python遍历循环怎么理解_聊聊python中的循环遍历

    python之循环遍历 关于循环遍历大家都知道,不外乎for和while,今天我在这写点不一样的循环和遍历.在实践中有时会遇到删除列表中的元素,那么循环遍历列表删除指定元素该怎么做呢? 还是直接上代码 ...

  4. es6遍历树结构并判断_实现树形结构数据 es6

    var jsonArray = { 'data':{ "List": [{ "authorityId": 1, "authorityName" ...

  5. es6 ie不兼容 函数_ES6:什么是块级作用域?

    在 ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. 我们先来看一下下面这种情况:内层变量可能会覆盖外层变量. var txt = '外层变量-->你好呀';func ...

  6. ES6/02/创建对象,构造函数和原型,原型和原型链,this指向,类,ES5新增的方法,数组方法,回调函数,ES5新增的字符串方法,ES5中新增的对象方法

    创建对象 1,利用new Object()创建对象 var obj1 =new Object(); 2,利用对象字面量创建对象 var obj2={}; 3,利用构造函数创建对象 function S ...

  7. es6 提取数组对象一部分_ES6新特性你了解了多少呢?

    ES6新特性 ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其标准化.两个发布版本之间时间跨度很大,所以ES6中的特性比较多. 在这里列举几个常用的: 类 ...

  8. SQL语句遍历树结构的数据表

    [转自]:肆尾葱的博客<SQL语句遍历树结构的数据表> 一.创建树结构的数据库表 -- 数据库为 SQL Server create table treeTest(id int,paren ...

  9. sdut 2129树结构练习——判断给定森林中有多少棵树(并查集)

    树结构练习--判断给定森林中有多少棵树 Time Limit: 1000MS Memory limit: 65536K 题目描述 众人皆知,在编程领域中,C++是一门非常重要的语言,不仅仅因为其强大的 ...

最新文章

  1. Linux6.4通过PXE网络装机
  2. gis 空间分析 鸟类栖息地选取_动物栖息地选择评估的常用统计方法
  3. 9.9学python靠谱吗-宅家亲测:9.9的python体验课,到底值不值?
  4. vbs脚本读写INI文件
  5. DL之PanopticFPN:Panoptic FPN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  6. 开源纯C#工控网关+组态软件(六)图元组件
  7. 山东师范大学志愿推荐系统邀请码_快看点邀请码填写HGC1QK快看点邀请码填写HGC1QK快看点邀请码大家千万不要乱填写哦...
  8. angularJs的继承
  9. Spring与Quartz集成详解
  10. 幻灯片:LINQ Inside, Part 1
  11. 2D纹理与3D模型共存时的渲染问题
  12. 【Matlab学习笔记】【数据类型】介绍
  13. MyBatis的四种资源加载方式以及优先级
  14. 解决窗口桌面管理器内存占用过高,系统更新,核显驱动异常造成的内存泄漏问题。
  15. 解决Untracked Files Prevent Checkout问题
  16. ChemDraw怎样输入大括符?
  17. Win7系统网络适配器不见了的解决办法
  18. 老版java奇缘幻境,老版奇缘幻境1
  19. 模拟登录qq网页版方法
  20. 网络流-最大流(Ford-Fulkerson算法Dinic算法)

热门文章

  1. MySQL官方备份_Mysqlbackup 备份详解(mysql官方备份工具)
  2. 计算机技术与自动化期刊官网,计算技术与自动化是什么级别
  3. 开发者福音!面向Web场景的云开发服务正式开放!
  4. 基于docker创建的Jenkins,settings.xml文件放在哪里
  5. [BZOJ 3647]
  6. 关于NPN和PNP传感器的应用区别(转载)
  7. 构造函数和clone以及在继承中
  8. 基于git的工作流程
  9. Ref and Out
  10. win8开发中需要用到一些系统版本之类的统计信息,总结如下。