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:

  1. 在对对象进行遍历时,如不需要访问属性名选择for...of循环,如需访问属性名选择for...in循环
  2. 在对数组进行访问时,使用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练习中,我时常会遇到以下问题待解决:

  1. Map操作中,经常会遇到需要根据已有的目标数组的情况做出相应的映射操作,但目前尚未发现怎样在Map循环中检查已映射的目标数组?
  2. 为对象实现接口使对象也具有MapReduce操作的能力

转载于:https://www.cnblogs.com/Mr-liyang/p/7337388.html

JavaScript常见集合操作相关推荐

  1. java基础—Map集合的常见方法操作(java集合八)

    Map集合的常见方法操作 Map集合中的元素取出并打印的三种方式 import java.util.Collection; import java.util.HashMap; import java. ...

  2. JavaScript中DOM操作

    Web前端基础修炼 HTML基本标签详解与运行截图 CSS基本操作详解及截图演示 JavaScript基础(ECMAScript) JavaScript中DOM操作 JavaScript中BOM操作 ...

  3. 深度解析javaScript常见数据类型检查校验

    前言 在JavaScript中,数据类型分为两大类,一种是基础数据类型,另一种则是复杂数据类型,又叫引用数据类型 基础数据类型:数字Number 字符串String 布尔Boolean Null Un ...

  4. 第一百一十六节,JavaScript,DOM操作样式

    JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检 ...

  5. 常见Dom操作有哪些?

    这里是修真院前端小课堂,本篇分析的主题是 [ 常见Dom操作有哪些?] 大家好,我是IT修真院深圳分院第02期学员,一枚正直善良的web程序员. 今天给大家分享一下,修真院官网JS任务2中常见DOM操 ...

  6. Javascript核心DOM操作 学习笔记

    DOM .BOM Day01 DOM 1.web APIs和JS基础关联性 1.1 JS的组成 1.2 JS基础阶段以及Web APIs阶段 2.API和Web APIs 2.1 API 2.2 We ...

  7. 通过JavaScript简单的操作DOM(一)

    通过JavaScript简单的操作DOM (一)简单的前提概念 1.DOM简介 DOM,文档对象模型.描述了HTML和XML文档结构,然后提供API,来帮助开发人员添加.删除.修改页面的某一部分. ( ...

  8. python列表按照指定顺序排序-Python常见排序操作示例【字典、列表、指定元素等】...

    本文实例讲述了Python常见排序操作.分享给大家供大家参考,具体如下: 字典排序 按value排序 d1 = {"name":"python","b ...

  9. Oracle 语言分类 数据类型 数据类型转换 常用函数 集合操作 子查询

    SQL分类 SQL(Structure Query Language)语言是数据库的核心语言.SQL语言共分为四大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL.1 ...

最新文章

  1. 避免沦为“人工智障”,机器人还需找对语音交互的“打开方式”
  2. 机器学习重新构想计算的构建块
  3. 游戏基础体验研究:玩家想要什么样的美术品质?
  4. WebAPI(part1)--API及DOM
  5. C语言试题五十七之假定输入的字符串中只包含字母和*号。请编写函数function,它的功能是:删除字符串中所有*号。在编写函数时,不得使用c语言提供的字符串函数。
  6. 一个C++工程内存泄漏问题的排查及重现工程
  7. python 近期用到的基础知识汇总(六)
  8. spring data redis的使用jar包版本冲突问题
  9. Android通过post请求发送一个xml,解析返回xml数据
  10. XRD测试的68个问题(三)
  11. Aspose.word基础
  12. Dubbo-自适应扩展机制之Adaptive注解原理
  13. 好数推荐 数据堂平均音色语音库
  14. Tensorboard无法显示图片
  15. matlab中牛顿下山法实例,非线性方程的数值解法牛顿下山法matlab
  16. 如何用matlab实现小波变换
  17. FPGA学习之路-ZCU106板子点亮PS侧LED
  18. Ubuntu16.04搭建ftp/tftp/nfs/ssh服务器
  19. Linux内核模块编写详解
  20. 入门3D建模,没有美术基础你也可以学做人物角色面部造型 (下)

热门文章

  1. xamarin的破解安装
  2. [IoC容器Unity]第一回:Unity预览
  3. Vista光线效果photoshop教程
  4. 大型网站技术架构(八)网站的安全架构
  5. 开题:在移动开发中使用JavaScript进行混合编程提高代码复用率
  6. Linux 网络管理(1) - 网络配置文件
  7. 关于rabbitmq详细介绍
  8. Android开源项目分类汇总-转载
  9. hibernate笔记(三) Hibernate标识符属性(主键)生成策略全析
  10. Python+selenium自动化测试中Windows窗口跳转方法