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

看了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对象,觉得更加方便遍历,而且键名可以为对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EAT/IAT Hook

标 题: EAT/IAT Hook 作 者: Y4ng 时 间: 2013-08-21 链 接: http://www.cnblogs.com/Y4ng/p/EAT_IAT_HOOK.html #include <windows.h> #include <shlwapi.h> #include <wchar.h> DWORD MyZwGetContextThread(HANDLE Thread,LPCONTEXT lpContext) {memset(l…

wireshark过滤规则

1.过 滤 IP&#xff0c;如来源IP或者目标IP等于某个IP例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP2.过滤 端 口例子:tcp.port eq 80 // 不管端口是来源的还是目标的都显示tcp.port 80tcp.port eq 2722tc…

springboot 别名不起作用_springboot之mybatis别名的设置

mybatis别名设置在具体的mapper.xml文件中&#xff0c;定义很多的statement&#xff0c;statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。一.mybatis默认支持别名别名映射的类型_bytebyte_longlong_shortshort_intint_integerint_double…

Linux 编译 libc log,在Android的源码中添加LOG

想在Opencore代码中添加打印信息&#xff0c;但是使用OpenCore自带的PVLOGGER&#xff0c;有一定的局限&#xff0c;因为只能在创建对象调用相应的ThreadLogon()后才能使用。所以不能实现在任何函数中添加。于是通过添加Log.h的方法来添加。首先转下别人的经验我试了下还是出先…

《哈佛幸福课》笔记

前言&#xff1a;幸福感是衡量人生的唯一标准&#xff0c;是所有目标的最终目标 积极心理学 第一课 什么是积极心理学 与缺乏实质内容的心理自助行动不同&#xff0c;积极心理学从学术界而来&#xff0c;有着严谨的学术内容&#xff0c;并且兼顾应用到生活的方方面面&#xff…

ubuntu修改用户名、计算机名、主目录名

今天是MPI并行程序设计这门课交作业的截止日期&#xff0c;我们寝室的张佳和刘庆的本科同学来了&#xff0c;所以他们也没有时间搞&#xff0c;我就又做一回好人吧&#xff01;帮他们搞一下&#xff01;帮他们写报告的过程中最主要的问题就是跑那个MPI的程序&#xff0c;因为我…

linux redis可视化工具,几款开源的图形化Redis客户端管理软件

Redis是一个超精简的基于内存的键值对数据库(key-value)&#xff0c;一般对并发有一定要求的应用都用其储存session&#xff0c;乃至整个数据库。 它自带一个最小化的命令行式的数据库管理工具&#xff0c;有时侯使用起来并不方便。不过Github上面已经有了很多图形化的管理工具…

ubuntu 修改用户名和计算机名称

修改用户名 sudo chfn -f 新名字 原名字 sudo usermod -l 新名字 -d /home/新名字 -m 原名字 sudo groupmod -n 新名字 原名字 修改计算机名 /etc/hosts /etc/hostname

linux c 将虚拟地址转化为物理地址_面试不懂 Linux 内存管理?我用 20 张图给你讲明白...

微信搜索公众号「 后端技术学堂 」回复「1024」获取50本计算机电子书&#xff0c;回复「学习路线」获取超详细后端技术学习路线思维导图&#xff0c;文章每周持续更新&#xff0c;我们下期见&#xff01;大家好&#xff0c;我是柠檬哥。分享编程学习&#xff0c;助力程序员成长…

nginx源码分析—模块及其初始化

Content 0. 序 1. nginx有哪些模块&#xff1f; 2. nginx如何描述这些模块&#xff1f; 2.1 模块数据结构 2.1.1 ngx_module_t结构 2.1.2 ngx_command_t结构 2.2 模块类图 3. nginx如何组织这些模块&#xff1f; 3.1 全局数组ngx_modules 3.2 模块组织结构图 4. nginx的模块种类…

PostgreSQL的Checkpoint 发生的时机

磨砺技术珠矶&#xff0c;践行数据之道&#xff0c;追求卓越价值 回到上一级页面&#xff1a;PostgreSQL基础知识与基本操作索引页 回到顶级页面&#xff1a;PostgreSQL索引页 官方说明来自&#xff1a; http://www.postgresql.org/docs/9.2/static/runtime-config-wal.html…

linux 网络相关,Linux系统管理员必备的21个网络相关监控

Linux系统管理员必备的21个网络相关监控1. ntopngntopng 是 ntop 的升级版&#xff0c;它提供了一个能通过浏览器进行网络监控的图形用户界面。它还有其他用途&#xff0c;如&#xff1a;地理定位主机&#xff0c;显示网络流量和 ip流量分布并能进行分析。2. iftopiftop 类似于…

sqlite sqlite3_bind_int sqlite3_bind_text

sqlite3_bind_int sqlite3_bind_text 这两个函数给“准备语句”绑定参数。其中函数的第二个参数是绑定参数的编号。 此编号是从1开始&#xff0c;而不是从0开始。 查看sqlite3的源码&#xff0c;可以看到这两个函数都调用了 vdbeUnbind 函数。 查看vdbeUnbind函数&…

web无序列表去掉点_HTML 无序列表项目符号使用图片的CSS写法

创建一个HTML页面&#xff0c; 其内容为一个无序列表&#xff0c; 列表中至少包含了5本畅销书&#xff0c;每本书之前的项目符号必须采用概述封面的缩略图。这些信息可以冲Web上获取。 要求采用CSS方法进行布局。HTML&#xff1a;复制代码代码如下:Linux畅销书鸟哥的Linux私房菜…

WPF 获得文件夹路径 FolderBrowserDialog

WPF 获得文件夹路径可用FolderBrowserDialog类&#xff0c; 添加System.Windows.Forms引用&#xff0c; 并引用命名空间using System.Windows.Forms; privatevoid button1_Click(object sender, RoutedEventArgs e){FolderBrowserDialog fbd new FolderBrowserDialog();fbd.Sho…

Sqlite SQL格式化输入函数splite3_mprintf

sqlite中&#xff0c; 在使用sql语句写入字符串数据时&#xff0c; 由于字符数据中可能隐含转义字符&#xff0c;如果对于他们不作处理&#xff0c;执行时&#xff0c;exec函数将不识别&#xff0c;或者造成注入攻击这个时候sqlite_mprintf(),应该就是必须使用了&#xff0c;配…

固态硬盘 linux 文件系统,SSD是否需要使用特别的文件系统?

用认真的态度与专业的情怀倾注于存储&#xff0c;欢迎关注我&#xff0c;与我交流哦&#xff01;我们常用的电脑系统主要是Windows和Linux&#xff0c;其中&#xff0c;Windows系统中常用的文件系统主要是FAT和NFTS&#xff0c;FAT是旧Windows和U盘用的较多&#xff0c;最新Win…

java二维数组数字数显次数_【每日一题】118.数组中数字出现的次数

关注我们获取更多计算机考研信息? 今日习题在一个数组 nums 中除一个数字只出现一次之外&#xff0c;其他数字都出现了三次。请找出那个只出现一次的数字。示例 1&#xff1a;输入&#xff1a;nums [3,4,3,3]输出&#xff1a;4示例 2&#xff1a;输入&#xff1a;nums [9,1,…

凤凰os linux界面,让deepin linux系统与凤凰os共用个人目录的方法

下面以deepin为例介绍linux系统与凤凰os(phoenix os)共用个人目录的方法&#xff0c;经过实测&#xff0c;按照以下方法可以成功。背景我的电脑安装的原来是deepin单系统&#xff0c;deepin安装在sda1分区&#xff0c;sda5分区挂载成home分区&#xff0c;我的deepin用户名是key…

微软的转型中?

北京时间8月23日夜&#xff0c;微软在其官网上发表新闻称&#xff0c;微软首席执行官Steve Ballmer将在12个月内退休。 微软在这篇《微软CEO Steve Ballmer将在12个月内退休》新闻中表示&#xff0c;其首席执行官Steve Ballmer已决定将在12个月内退休&#xff0c;尤其是当新的首…