Javascript数组原型提供的方法非常之多,主要分为三种:

  • 直接修改原数组
  • 原数组不变,返回新数组
  • 数组遍历方法

直接修改原数组的API

pop()
删除一个数组中的最后的一个元素,并且返回这个元素

push()
添加一个或者多个元素到数组末尾,并且返回数组新的长度

shift()
删除数组的第一个元素,并返回这个元素

unshift()
在数组开始处插入一些元素,并返回数组新的长度

splice()
从数组中添加/删除一些元素,然后返回被删除的元素

reverse()
颠倒数组中元素的顺序

sort()
用于对数组的元素进行排序

fill() -- ES6新增
将数组指定区间内的元素替换为某个值

copyWithin() -- ES6新增
数组内元素之间的替换

返回新数组的API

contact()
将传入的数组或者元素与原数组合并,组成一个新的数组并返回

slice()
连接两个或多个数组

join()
将数组中的所有元素连接成一个字符串

indexOf()
用于查找元素在数组中第一次出现时的索引,如果没有,则返回-1

lastIndexOf()
用于查找元素在数组中最后一次出现时的索引,如果没有,则返回-1

includes() -- ES7新增
用来判断当前数组是否包含某个指定的值,如果是,则返回 true,否则返回false

数组遍历方法

针对数组遍历方法,从

  • 是否影响原数组
  • 是否可中途跳出
  • 有无返回值

三个方面来讨论

forEach()

指定数组的每项元素都执行一次传入的函数,返回值为undefined

let arr=[1,2,3,4];
arr.forEach(function(value,key,arr){  //值,索引,数组(默认为选定数组)return item;  //进行任何操作
})  //只返回undefined

return 返回 undefined

return

  • 仅有return:返回undefined
  • return false:返回undefined
  • return true:返回undefined

简言之,仅返回undefined;

总结:

  1. 不会影响原数组
  2. 不会被中断
  3. 仅返回undefined

map()

遍历数组,使用传入函数处理每个元素,并返回函数的返回值组成的新数组

return 返回由 undefined组成的数组,数组个数与原数组个数相同

return

  • return 表达式,返回有响应表达式 组成的数组

简言之,返回值,必定是一个与原数组个数相等的数组;但是数组中的值,根据所做的处理有所不同;

总结:

  1. 不会影响原数组
  2. 不能被中断
  3. 返回值,必定是一个与原数组个数相等的数组;但是数组中的值,根据所做的处理有所不同

filter()

使用传入的函数测试所有元素,并返回所有通过测试的元素组成的新数组

没有return,返回值为空数组;

return

  • 仅有return,返回空数组;
  • return false,返回空数组;
  • return true,返回原数组;(是深拷贝还是浅拷贝)
  • return 其余表达式,如果有判断条件,返回相应判断条件构成的数组;没有判断条件,返回原数组;

简言之,返回值,要么为空数组,要么为原数组,要么为原数组部分元素组成的数组;

总结:

  1. 不会影响原数组
  2. 不能被中断
  3. 返回值,要么为空数组,要么为原数组,要么为原数组部分元素组成的数组

every()

使用传入的函数测试所有元素,每一个元素经传入的函数处理都返回true该方法才返回true,否则返回false(验证是否每一个元素都满足测试函数)

验证是否有元素都满足测试函数,eg: return (element >= 10)

无return:返回false;

return

  • 仅有return :返回false
  • return false:返回false
  • return true:返回true

简言之,只返回 true 或者 false

总结:

  1. 不会影响原数组
  2. 不能被中断
  3. 只返回true 或者 false

some()

使用传入的函数测试所有元素,只要有一个元素经传入的函数处理返回true该方法就返回true,否则返回false(验证是否有元素都满足测试函数)

return,返回 false

return:

  • 仅有return,返回false
  • return false,返回false
  • return true,返回 true;并且后续被中断

简言之,仅返回true、或者false

总结:

  1. 不会影响原数组
  2. return true,可以被中断
  3. 仅返回true、或者false

find() -- ES6新增

返回数组中第一个满足条件的元素(如果有的话), 如果没有,则返回 undefined

return:返回undefined

return

  • 仅有return:返回undefined
  • return false:返回undefined;
  • return true:返回相应的索引值,并且中断

总结:

  1. 不会影响原数组
  2. return true 中断循环
  3. 返回 undefined 或者 相应索引值

findIndex() -- ES6新增
返回数组中第一个满足条件的元素的索引(如果有的话), 如果没有,则返回 -1


keys() -- ES6新增
返回一个数组索引的迭代器


values() -- ES6新增
返回一个数组迭代器对象,该对象包含数组中每个索引的值


entries() -- ES6新增
返回一个数组迭代器对象,该对象包含数组中每个索引的键值对


reduce()
接收一个方法作为累加器,数组中的每个值(从左至右) 开始合并,最终为一个值


reduceRight()
接收一个方法作为累加器,数组中的每个值(从右至左) 开始合并,最终为一个值


最终总结下,对于数组遍历方法,forEach map filter every some find,六个方法,都不会改变原数组,只有some find 可中途跳出循环,返回结果看上述分析;

Javascript基础之Array数组API相关推荐

  1. javascript基础系列:数组常用方法解析

    javascript基础系列:数组常用方法解析 今天是比较特殊的日子,我们编程人员共同的节日,1024,祝每个编程人员节日快乐! 数组是javascript必不可少的一项,今天让我们来总结一下数组操作 ...

  2. 【JavaScript基础-二维数组】JavaScript修改二维数组的某个元素时,其上下元素也受到影响

    JavaScript修改二维数组的某个元素时,其上下元素也受到影响 发布:2021年8月15日18:54:56 前言 在研究背包问题时,一开始往往会用二维数组的形式来描述,这样会便于理解.但是,我在操 ...

  3. JavaScript引用类型之Array数组之强大的splice()方法

    splice()方法可以说是Array数组最强大的方法,他的用法很多,主要用法是向数组的中部插入项! 下面是它的用法: arrayObject.splice(index,howmany,element ...

  4. doctrine find的对象转换成数组_「ES6基础」Array数组的新方法(上)

    在日常工作中我们经常会与数组打交道,因此需要熟练掌握数组操作的相关方法,ES6中关于数组的操作,又给我们带来了哪些惊喜呢,Array数组操作又添加了哪些新方法? 本篇文章将从以下几个方面进行介绍: A ...

  5. 【JS基础】Array数组的创建与操作方法

    本文参考:<JS高级程序设计>(红宝书). JS数组的独特性 JS中Array类型属于引用类型,是除了Object之外最常用的类型. JS的数组与其他语言的数组有着相当大的区别,它十分灵活 ...

  6. javascript基础学习_数组增删改查......_ZHOU125disorder_

    数组的增删改查...... 1. new Array() (增) 定义一个空格数组之后在把元素添加到数组里面 var arr = new Array() arr[0]="卡卡西"; ...

  7. c++ 数组截取_【学习教程】JavaScript中原生Array数组方法详解

    来源 | http://www.fly63.com/article/detial/9692 JS中,数组可以通过阵列构造函数或[]字面量的方式创建.数组是一个特殊的对象,继承自对象原型,但用typeo ...

  8. JavaScript基础之Array对象和Boolean对象

    2019独角兽企业重金招聘Python工程师标准>>> //数组对象//属性function arr.constructor; //返回数组对象的构造函数int arr.length ...

  9. JavaScript中原生Array数组方法详解

    JS中,数组可以通过阵列构造函数或[]字面量的方式创建.数组是一个特殊的对象,继承自对象原型,但用typeof运算判断时,并没有一个特定的值,仍然返回'对象'.但使用[] instanceof Arr ...

最新文章

  1. 计算机基础2多媒体,《计算机基础》第2章-多媒体技术.pptx
  2. Code Review 是一场苦涩但有意思的修行
  3. HDU4716 A Computer Graphics Problem
  4. python3语法错误-python3中的def函数语法错误
  5. .Net学习笔记----2015-07-10(GDI绘图)
  6. 谷歌官方推出 TensorFlow 中文视频:机器学习从零到一
  7. 关于C语言include尖括号和双引号的对话
  8. 输入法快捷键_[秒杀必备]搜狗输入法自定义短语快捷键设置
  9. Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
  10. firebug js版
  11. c语言缩写一个人的名字,用C语言输入一个人的英文名字统计个数输出
  12. python语法(二)——截取字符串的方法详解
  13. Python 爬虫分析豆瓣 TOP250 告诉你程序员业余该看什么书?
  14. CURL POST PHP
  15. ARM开发比51开发高级吗—嵌入式就业技能分类
  16. 如何获取量化交易历史复权数据?
  17. 基于python的招聘网站分析
  18. 电脑蓝屏记录(RESOURCE_NOT_OWNED)
  19. 抑郁焦虑测试软件可信度,做题自测抑郁症可靠吗
  20. 垃圾小白羊leetcode刷题记录1

热门文章

  1. 云计算的发展趋势_云计算的未来发展趋势
  2. 自动化测试——unittest编写接口测试用例
  3. 测试开发必备技能-Jmeter二次开发
  4. Python学习教程:Python自动化测试框架需要学习哪些?
  5. linux rec命令_文件过多时ls命令为什么会卡住?
  6. python编辑excel文件_python自动化之修改excel(包括xls文件和xlsx文件)
  7. The Wave kernel Signature: A Quantum Mechanical Approach to shape Analysis
  8. 2复数与复变函数(二)
  9. 基于深度学习的青菜病害区域图像语义分割与定位
  10. oracle的 客户端工具,Oracle SQL Handler下载-Oracle数据库客户端工具5.2 官方版-东坡下载...