Javascript基础之Array数组API
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;
总结:
- 不会影响原数组
- 不会被中断
- 仅返回
undefined
map()
遍历数组,使用传入函数处理每个元素,并返回函数的返回值组成的新数组
无return
返回由 undefined
组成的数组,数组个数与原数组个数相同;
有return
return
表达式,返回有响应表达式 组成的数组
简言之,返回值,必定是一个与原数组个数相等的数组;但是数组中的值,根据所做的处理有所不同;
总结:
- 不会影响原数组
- 不能被中断
- 返回值,必定是一个与原数组个数相等的数组;但是数组中的值,根据所做的处理有所不同
filter()
使用传入的函数测试所有元素,并返回所有通过测试的元素组成的新数组
没有return
,返回值为空数组;
有return
:
- 仅有
return
,返回空数组; return false
,返回空数组;return true
,返回原数组;(是深拷贝还是浅拷贝)return
其余表达式,如果有判断条件,返回相应判断条件构成的数组;没有判断条件,返回原数组;
简言之,返回值,要么为空数组,要么为原数组,要么为原数组部分元素组成的数组;
总结:
- 不会影响原数组
- 不能被中断
- 返回值,要么为空数组,要么为原数组,要么为原数组部分元素组成的数组
every()
使用传入的函数测试所有元素,每一个元素经传入的函数处理都返回true
该方法才返回true
,否则返回false
(验证是否每一个元素都满足测试函数)
验证是否有元素都满足测试函数,eg: return (element >= 10)
无return:返回false;
有return
:
- 仅有
return
:返回false
; return false
:返回false
;return true
:返回true
;
简言之,只返回 true
或者 false
总结:
- 不会影响原数组
- 不能被中断
- 只返回
true
或者false
some()
使用传入的函数测试所有元素,只要有一个元素经传入的函数处理返回true
该方法就返回true
,否则返回false
(验证是否有元素都满足测试函数)
无return
,返回 false
有return
:
- 仅有
return
,返回false
; return false
,返回false
;return true
,返回true
;并且后续被中断
简言之,仅返回true
、或者false
总结:
- 不会影响原数组
return true
,可以被中断- 仅返回
true
、或者false
find()
-- ES6新增
返回数组中第一个满足条件的元素(如果有的话), 如果没有,则返回 undefined
无return
:返回undefined
有return
:
- 仅有
return
:返回undefined
; return false
:返回undefined;return true
:返回相应的索引值,并且中断
总结:
- 不会影响原数组
return true
中断循环- 返回
undefined
或者 相应索引值
findIndex()
-- ES6新增
返回数组中第一个满足条件的元素的索引(如果有的话), 如果没有,则返回 -1
keys()
-- ES6新增
返回一个数组索引的迭代器
values()
-- ES6新增
返回一个数组迭代器对象,该对象包含数组中每个索引的值
entries()
-- ES6新增
返回一个数组迭代器对象,该对象包含数组中每个索引的键值对
reduce()
接收一个方法作为累加器,数组中的每个值(从左至右) 开始合并,最终为一个值
reduceRight()
接收一个方法作为累加器,数组中的每个值(从右至左) 开始合并,最终为一个值
最终总结下,对于数组遍历方法,forEach
map
filter
every
some
find
,六个方法,都不会改变原数组
,只有some
find
可中途跳出循环,返回结果看上述分析;
Javascript基础之Array数组API相关推荐
- javascript基础系列:数组常用方法解析
javascript基础系列:数组常用方法解析 今天是比较特殊的日子,我们编程人员共同的节日,1024,祝每个编程人员节日快乐! 数组是javascript必不可少的一项,今天让我们来总结一下数组操作 ...
- 【JavaScript基础-二维数组】JavaScript修改二维数组的某个元素时,其上下元素也受到影响
JavaScript修改二维数组的某个元素时,其上下元素也受到影响 发布:2021年8月15日18:54:56 前言 在研究背包问题时,一开始往往会用二维数组的形式来描述,这样会便于理解.但是,我在操 ...
- JavaScript引用类型之Array数组之强大的splice()方法
splice()方法可以说是Array数组最强大的方法,他的用法很多,主要用法是向数组的中部插入项! 下面是它的用法: arrayObject.splice(index,howmany,element ...
- doctrine find的对象转换成数组_「ES6基础」Array数组的新方法(上)
在日常工作中我们经常会与数组打交道,因此需要熟练掌握数组操作的相关方法,ES6中关于数组的操作,又给我们带来了哪些惊喜呢,Array数组操作又添加了哪些新方法? 本篇文章将从以下几个方面进行介绍: A ...
- 【JS基础】Array数组的创建与操作方法
本文参考:<JS高级程序设计>(红宝书). JS数组的独特性 JS中Array类型属于引用类型,是除了Object之外最常用的类型. JS的数组与其他语言的数组有着相当大的区别,它十分灵活 ...
- javascript基础学习_数组增删改查......_ZHOU125disorder_
数组的增删改查...... 1. new Array() (增) 定义一个空格数组之后在把元素添加到数组里面 var arr = new Array() arr[0]="卡卡西"; ...
- c++ 数组截取_【学习教程】JavaScript中原生Array数组方法详解
来源 | http://www.fly63.com/article/detial/9692 JS中,数组可以通过阵列构造函数或[]字面量的方式创建.数组是一个特殊的对象,继承自对象原型,但用typeo ...
- JavaScript基础之Array对象和Boolean对象
2019独角兽企业重金招聘Python工程师标准>>> //数组对象//属性function arr.constructor; //返回数组对象的构造函数int arr.length ...
- JavaScript中原生Array数组方法详解
JS中,数组可以通过阵列构造函数或[]字面量的方式创建.数组是一个特殊的对象,继承自对象原型,但用typeof运算判断时,并没有一个特定的值,仍然返回'对象'.但使用[] instanceof Arr ...
最新文章
- 计算机基础2多媒体,《计算机基础》第2章-多媒体技术.pptx
- Code Review 是一场苦涩但有意思的修行
- HDU4716 A Computer Graphics Problem
- python3语法错误-python3中的def函数语法错误
- .Net学习笔记----2015-07-10(GDI绘图)
- 谷歌官方推出 TensorFlow 中文视频:机器学习从零到一
- 关于C语言include尖括号和双引号的对话
- 输入法快捷键_[秒杀必备]搜狗输入法自定义短语快捷键设置
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
- firebug js版
- c语言缩写一个人的名字,用C语言输入一个人的英文名字统计个数输出
- python语法(二)——截取字符串的方法详解
- Python 爬虫分析豆瓣 TOP250 告诉你程序员业余该看什么书?
- CURL POST PHP
- ARM开发比51开发高级吗—嵌入式就业技能分类
- 如何获取量化交易历史复权数据?
- 基于python的招聘网站分析
- 电脑蓝屏记录(RESOURCE_NOT_OWNED)
- 抑郁焦虑测试软件可信度,做题自测抑郁症可靠吗
- 垃圾小白羊leetcode刷题记录1
热门文章
- 云计算的发展趋势_云计算的未来发展趋势
- 自动化测试——unittest编写接口测试用例
- 测试开发必备技能-Jmeter二次开发
- Python学习教程:Python自动化测试框架需要学习哪些?
- linux rec命令_文件过多时ls命令为什么会卡住?
- python编辑excel文件_python自动化之修改excel(包括xls文件和xlsx文件)
- The Wave kernel Signature: A Quantum Mechanical Approach to shape Analysis
- 2复数与复变函数(二)
- 基于深度学习的青菜病害区域图像语义分割与定位
- oracle的 客户端工具,Oracle SQL Handler下载-Oracle数据库客户端工具5.2 官方版-东坡下载...