Array 对象支持在 单个变量名下存储多个元素。

Array方法:

在遍历多个元素的方法中,下面的方法在访问索引之前执行in检查,并且不将空槽与undefined合并:
concat() 返回一个新数组,改数组由被调用的数组与其他数组或值连接形成。
copyWithin() 在数组内复制数组元素序列。
every() 如果调用数组中的每个元素都满足测试函数,则返回true。
filter() 返回一个新数组,其中包含调用所提供的筛选函数返回为true的所有数组元素。
flat() 返回一个新数组,所有子数组元素递归地连接到其中,直到指定的深度。
flatMap() 对调用数组的每个元素调用给定的回调函数,然后将结果平展一层,返回一个新数组。
forEach() 对调用数组中的每个元素调用函数。
indexOf() 返回在调用数组中可以找到给定元素的第一个最小索引。
lastIndexOf() 返回在调用数组中可以找到给定元素的最后一个(最大)索引,如果找不到则返回-1.
map() 返回一个新数组,其中包含对调用数组中的每个元素调用函数的结果。
reduce() 对数组的每个元素(从左到右)执行用户提供的 reducer 回调函数,将其简化为单个值。
reduceRight() 同上。
reverse() 反转数组中元素的顺序。
slice() 提取调用数组的一部分并返回一个新数组。
some() 如果调用数组中至少有一个元素满足提供的测试函数,则返回true。
sort() 对数组的元素进行排序并返回该数组。
splice() 从数组中添加和/或删除元素。

下面这些方法将空槽视为undefined:
entries() 返回一个新的数组迭代器对象,其中包含数组中每个索引的键值对。
fill() 用静态值填充数组中从开始索引到结束索引的所有元素。
find() 返回数组中满足提供的测试函数的第一个元素的值,如果没有找到合适的元素,则返回undefined。
findIndex() 返回数组中满足提供的测试函数的第一个元素的索引,如果没有找到合适的元素,则返回-1.
findLast() 返回数组中满足提供的测试函数的最后一个元素的值,如果没有找到合适的元素,则返回undefined。
findLastIndex() 返回数组中满足所提供测试函数的最后一个元素的索引,如果没有找到合适的元素,则返回-1.
group() 根据测试函数返回的字符串,将数组的元素分组到一个对象中。
groupToMap() 根据测试函数返回的值,将数组的元素分组到map中
includes() 确定调用数组是否包含一个值,根据情况返回true或false。
join() 将数组的所有元素连接为字符串。
keys() 返回一个新的数组迭代器,其中包含调用数组中每个索引的键。
values() 返回一个新的数组迭代器对象,该对象包含数组中每个索引的值。
toLocaleString() 返回一个表示调用数组及其元素的本地化字符串

复制方法和修改方法:

原数组的元素按如下方法复制到新数组中:
对象: 对象引用被复制到新数组中。原数组和新数组都引用同一个对象。即如果一个被引用的对象被修改,
新数组和原数组都可以看到更改。
基本类型: 如字符串,数字和布尔值(不是String, Number和Boolean对象):他们的值被复制到新数
组中。

构造函数

Array()
创建一个新的Array对象。

创建数组

三种创建新数组方法:
1.使用数组字面量
const arr = [1,2];
2.使用Array()构造函数
const arr = new Array('1','2');
3.使用 String.prototype.split()从字符串构建数组
const arr = '1,2'.split(',');

从数组中创建一个字符串

join()方法从 fruits 数组中创建一个字符串。
const arr = ['a','b'];
const arrString = arr.join(','); // 输出 'a,b'

通过索引访问数组元素:

const arr = ['a','b'];
arr[0];

在数组中查找元素的索引:

indexOf() 方法查找字符串 a 在 arr数组中的位置(索引)
const arr = ['a','b'];
console.log(arr.indexOf('a')); // 0

检查数组是否包含某个元素

includes()方法存在则返回true,反之为false。
indexOf()方法测试索引值不是 -1。
如果indexOf()不返回-1,则数组包含给定的元素。

将元素添加到数组中:

push()方法向数组追加一个新字符串。

移除数组中的最后一个元素:

pop()方法从数组中移除最后一个元素。

从数组末尾移除多个元素:

splice()方法从数组中移除多个元素
例如:
const arr = ['a','b','c','d','e'];
const start = -3;
const removedItems = arr.splice(start);
console.log(arr); // ['a','b']
console.log(removedItems); //['c','d','e']

splice方法: 可以按索引移除单个元素。
splice方法: 可以按索引移除多个元素。
splice方法: 替换数组中的多个元素。

将数组截断为前N个元素:

splice方法将数组截断到只剩下前2个元素
例如:
const arr = ['a','b','c','d','e'];
const start = 2;
const removedItems = arr.splice(start);

移除数组中的第一个元素:

使用 shift 方法从数组中移除第一个元素。
const arr = ['a','b','c'];
const removedItem = arr.shift();

从数组开头移除多个元素

splice方法从数组中移除多个元素
const arr = ['a','b','c','d','e'];
const start = 0;
const deleteCount = 3;
const removedItems = arr.splice(start, deleteCount);
console.log(arr);//['d','e']
console.log(removedItems);//['a','b','c']

向数组开头添加一个新的元素

unshift()方法在索引0处向数组添加一个新元素-使其成为数组中新的第一个元素。
例如:
const arr = ['a','b'];
const newArr = arr.unshift('c');
console.log(arr); // ['c','a','b']

按索引移除单个元素

使用splice方法从 arr数组中删除字符串
const arr = ['a','b','c'];
const start = arr.indexOf('b');
const deleteCount = 1;
const removedItems = arr.splice(start, deleteCount);
console.log(arr); //['a','c'];
console.log(removedItems);// ['b']

OR
const arrs = ['a','b','c','d']
const remove = arrs.splice(1,2); //移除多个元素

替换数组中的多个元素

使用splice方法将arr数组中的最后两个元素替换为新元素。

const arr = ['a','b','c'];
const start = -2;
const deleteCount = 2;
const remove = arr.splice(start, deleteCount, 'e','f');
console.log(arr);// [a, e, f]
console.log(remove); // [b,c]

遍历数组

使用 for...of循环遍历arr数组,将每一个元素打印到控制台
const arr = [a,b,c];
for( const item of arr){
console.log(item);
}

对数组中的每个元素调用函数

使用forEach方法在arr数组中的每个元素上调用一个函数;该函数将每个元素以及元素的索引号打印到控制台
const arr = [a,b,c,d]
arr.forEach((item, index)=>{
console.log(item, index);
})

合并多个数组

concat 方法将 arr1数组与arr2数组合并,生成一个新的 arrs数组。
const arr1 = [a,b,c];
const arr2 = [d, e];
const arrs = arr1.concat(arr2);

复制数组

从现有的 arr数组创建新数组的三种方法: 首先使用展开语法, 然后使用 from() 方法, 然后使用 slice() 方法。

const arr = [a,b];
const arrCopy = [...arr];
const arrCopy2 = Array.from(arr);
const arrCoppy3 = arr.slice();

所有内置的数组复制操作(展开语法, Array.from(),Array.prototype.slice() 和 Array.prototype.concat())
都会创建浅拷贝。如果想要一个数组的深拷贝,可以使用 JSON.stringify()将数组转换成一个 JSON字符串,然后使用
JSON.parse()将字符串转换回一个完全独立于原数组的新数组。

const arrDeepCopy = JSON.parse(JSON.stringigy(arr));

Array静态方法

Array.from(): 从数组类对象或可迭代对象创建一个新的Array实例。

Array.isArray(): 如果参数是数组则返回true,否则返回false。

Array.of(): 创建一个新的Array实例,具有可变数量的参数,而不管参数的数量或类型。

Array实例属性

Array.prototype.length:  反映数组中元素的数量。

学习网址:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

Array方法学习总结的更多相关文章

  1. javascript Array 方法学习

    原生对象Array学习 Array.from()   从类似数组的对象或可迭代的对象返回一个数组 参数列表 arraylike  类似数组的对象或者可以迭代的对象 mapfn(可选)   对对象遍历映 ...

  2. Array方法学习小结

    原生js forEach()和map()遍历 A:相同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...

  3. S5中新增的Array方法详细说明

      ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...

  4. ES5中新增的Array方法详细说明

    一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (j ...

  5. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  6. 5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例

    ES5中,一共有9个Array方法 Array.prototype.indexOf Array.prototype.lastIndexOf Array.prototype.every Array.pr ...

  7. js Array 方法总结

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Javascript Array 方法整理

    Javascript Array 方法整理 Javascript 数组相关方法 说明 大多数其它编程语言不允许改变数组大小,越界访问索引会报错,但是 javascript不会报错,不过不建议直接修改a ...

  9. ECMAScript5中新增的Array方法实例详解

    ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法.(注意兼容性) 在ES5中,一共有9个Array方法:http://kangax.githu ...

  10. 单片机和Linux都想学_换个两全的方法学习单片机

    本节教你如何学习单片机,如何选择合适的开发板和开发工具. 现在我们知道单片机是要学习的,那么怎么去学习单片机?在上一课我们说不要使用老一套的方法学习,实际上是指的两个问题. 第一:选择什么开发板: 第 ...

随机推荐

  1. Util类 为了代码复用将一些连接数据库的代码

    import java.sql.*;//导入包 public class Util1 { //基本配置 static final String JDBC_DRIVER = "com.mysq ...

  2. BUUCTF-[强网杯2019]随便注

    强网杯2019随便注 它说随便注,它可不是随便注入的哈 首先测试闭合环境,因为有回显,所以很快即知道了是一个单引号闭合 接下来常规操作,得到列数大概为2 1';select 2; 返回了过滤信息 于是 ...

  3. 用Python绘图(数据分析与挖掘实战)

    代码1:餐饮日销额数据异常值检测(箱型图) import pandas as pd import numpy as np catering_sale = "D:\\360MoveData\\ ...

  4. Vulhub 漏洞学习之:ActiveMQ

    Vulhub 漏洞学习之:ActiveMQ 目录 Vulhub 漏洞学习之:ActiveMQ 1 ActiveMQ反序列化漏洞(CVE-2015-5254): 1.1 漏洞利用过程 2 ActiveM ...

  5. PyOpenGL的安装与错误解决

    1. 引言 OpenGL,一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),包含了一系列可以操作图形.图像的函数.然而,OpenGL本 ...

  6. Avalonia 实现平滑拖动指定控件

    Avalonia 实现平滑拖动指定控件 1.创建一个UserControl控件,并且添加以下代码 using System; using Avalonia; using Avalonia.Contro ...

  7. “堆内存持续占用高 且 ygc回收效果不佳” 排查处理实践

    作者:京东零售 王江波 说明:部分素材来源于网络,数据分析全为真实数据. 一. 问题背景 自建的两套工具,运行一段时间后均出现 内存占用高触发报警,频繁young gc且效果不佳.曾经尝试多次解决,因 ...

  8. LeetCode-1610 可见点的最大数目

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-number-of-visible-points 题目描述 给你一个点数组 poi ...

  9. centos7 开机自启动脚本

    两种实现方式 方法1:(rc.local) 1.因为在centos中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local ...

  10. Linux操作命令(一)1.ls命令 2.cd命令 3.pwd命令

    1.ls 命令 ls 命令就是 list 的缩写, ls 用来打印出当前目录的清单. 参数 描述 -a –all 列出目录下的所有文件,包括以 . 开头的隐含文件 -l 除了文件名之外,还将文件的权限 ...