JavaScript常见集合操作
JavaScript常见集合操作
集合的遍历
FOR循环(效率最高)
- 优点:JavaScript最普遍的for循环,执行效率最高
- 缺点:无法遍历对象
for(let i=0;i<array.length,i++){
    //operation
}
FOR…IN循环(效率较低)
- 优点:唯一一个能够获取对象的属性名的遍历方式
- 缺点:会将对象通过继承得到的属性一齐遍历,造成非预料的结果且效率较低
//会访问非继承的属性
for(attr in object){//attr作为属性名
    //object[attr]访问值
}
//避免访问继承的属性
for(attr in object){//attr作为属性名
    if(object.hasOwnProperty(attr)){
        //object[attr]访问值
    }
}
FOR…OF循环(效率较高)
- 优点:能够快速访问非继承属性值
- 缺点:需要ES6支持
for(item of object){
    //item访问值
}
FOREACH方法(数组内置高阶方法,含义清晰)
- 优点:函数式编程,简洁,快速领会代码含义
- 缺点:无法对对象使用
array.forEach(function(item,index,array)){
    //item为值
    //index为索引
    //array为被访问数组
};
TIPS:
- 在对对象进行遍历时,如不需要访问属性名选择for...of循环,如需访问属性名选择for...in循环
- 在对数组进行访问时,使用forEach得到较好的可读性,传统的for循环能够带来很高的性能及拓展性
集合的操作
提倡的想机器一样思考中,编程问题的解决被分为了输入,处理和输出
处理,是对输入数据的处理,就可以分为从输入的数据中提炼出一定的有价值的数据,并对他们做出一些操作,得到希望得到的有价值的东西,并将他输出
MAP映射
Map映射是将输入的数据中有价值的东西提取出来,转化为更有利于处理的格式
let dataAfterProcess = array.map(function(item,index,array){
    //item为值
    //index为索引
    //array为被访问数组
    return ;//返回dataAfterProcess中希望被添加的元素
});
REDUCE计算
Reduce计算以提取好的数据输入,并获得最终的一个结果
let output = array.reduce(function(accumulator, currentValue, currentIndex, array){
    //accumulator为输出结果
    //currentValue为遍历数组目前的值
    //currentIndex为遍历数组目前的索引
    //array为被访问数组
    return ;//返回希望累加的操作
},0);//0为计算结果的初始值,默认为数组第一个元素
TODO
在完成JS练习中,我时常会遇到以下问题待解决:
- 在Map操作中,经常会遇到需要根据已有的目标数组的情况做出相应的映射操作,但目前尚未发现怎样在Map循环中检查已映射的目标数组?
- 为对象实现接口使对象也具有MapReduce操作的能力
JavaScript常见集合操作的更多相关文章
- javascript 常见数组操作( 1、数组整体元素修改  2、 数组筛选  3、jquery 元素转数组  4、获取两个数组中相同部分或者不同部分  5、数组去重并倒序排序  6、数组排序  7、数组截取slice  8、数组插入、删除splice(需明确位置)  9、数组遍历  10、jQuery根据元素值删除数组元素的方)
		主要内容: 1.数组整体元素修改 2. 数组筛选 3.jquery 元素转数组 4.获取两个数组中相同部分或者不同部分 5.数组去重并倒序排序 6.数组排序 7.数组截取slice 8.数组插入.删除 ... 
- 第一百一十六节,JavaScript,DOM操作样式
		JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检 ... 
- JavaScript实现集合与字典
		JavaScript实现集合与字典 一.集合结构 1.1.简介 集合比较常见的实现方式是哈希表,这里使用JavaScript的Object类进行封装. 集合通常是由一组无序的.不能重复的元素构成. 数 ... 
- 深度解析javaScript常见数据类型检查校验
		前言 在JavaScript中,数据类型分为两大类,一种是基础数据类型,另一种则是复杂数据类型,又叫引用数据类型 基础数据类型:数字Number 字符串String 布尔Boolean Null Un ... 
- 第一百二十六节,JavaScript,XPath操作xml节点
		第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ... 
- 第一百一十五节,JavaScript,DOM操作表格
		JavaScript,DOM操作表格 学习要点: 1.操作表格 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DO ... 
- java中的集合操作类(未完待续)
		申明: 实习生的肤浅理解,如发现有错误之处.还望大牛们多多指点 废话 事实上我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList ... 
- 彻底理解Oracle中的集合操作与复合查询
		--Oracle中的复合查询 复合查询:包含集合运算(操作)的查询 常见的集合操作有: union: 两个查询的并集(无重复行.按第一个查询的第一列升序排序) union all:两个查询的并集(有重 ... 
- mongo的runCommand与集合操作函数的关系
		除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ... 
随机推荐
- /etc/rc.local 与 /etc/profile
			1.用户自己源码安装的软件组要自启动,可以在/etc/rc.local中配置,rc.loacl 是rc.d/rc.local的一个软连接.rc.local -> rc.d/rc.local 2. ... 
- TreeMap的应用
			public class SortedMap { //treemap按key排序,默认是升序,可自定义降序 public static void main(String[] args) { Map&l ... 
- Spring IOC 源码简单分析 01 - BeanFactory
			### 准备 ## 目标 了解 Spring IOC 的基础流程 ## 相关资源 Offical Doc:http://docs.spring.io/spring/docs/4.3.9.RELEASE ... 
- mong大牛的blog
			MongoDB权威指南(3)-查询1.find方法介绍在不传入参数的情况下,find方法缺省使用 http://www.educity.cn/wenda/389594.html 这个归纳的比较好:可 ... 
- SpringMVC注解@RequestMapping @RequestParam @ResponseBody 和 @RequestBody 解析
			SpringMVC Controller层获取参数及返回数据的方式: @RequestMapping @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 C ... 
- webSocket协议与Socket的区别
			WebSocket介绍与原理WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex).一开始的握手需要借助HTTP请求完成. ——百度 ... 
- Zabbix SNMP OID discovery,自动发现
			Unlike file system and network interface discovery, the item does not necessarily have to have “snmp ... 
- vue 表单校验 一
			表单校验 一 最近使用elment-ui表单进行各种校验,心力交瘁,依旧不能很好地解决,先列出自己的归类,后期一个个攻破 表单校验史 表单校验准则 参考资源 1 2 3 4 5 第一种 显示明确的错误 ... 
- 使用axios 报 name.toUpperCase is not a function
			使用axios 报 name.toUpperCase is not a function 可能是许久没有用vue了,有些生疏,加上尝试之前总结的思路,这次在项目上实现时,碰到的问题.让人有些懵,不知所 ... 
- ConcurrentHashMap 分析
			转载请注明出处:http://blog.csdn.net/crazy1235/article/details/76795383 构造函数 JDK 1.5 引入了 ConcurrentHashMap . ... 
