ES3方法集合:

1join()方法,将一个数组里面的所有元素转换成字符串,然后再将他们连接起来返回一个字符串,通过制定的符号,默认值为逗号。不会改变原数组

var a = [,,,,];
a.join();
"1,2,3,4,5"
typeof (a.join());
"string"
typeof a
"object"

2reverse()方法对数组顺序进行反转,会改变原本的数组。

var a = [,,,,];
a.reverse();
[, , , , ] a
[, , , , ]

3sort()方法对数组顺序进行反转,会改变原本的数组。参数是个自定义的函数---

4concat() 方法用于连接两个或多个参数(数组,字符串等),返回的是一个新的数组。concat并不能递归的展开一个元素为数组的参数

var a = [1,2,3,4,5],
b = [6,7],
c = [8,9,[10,11]];
a.concat(b);
[1, 2, 3, 4, 5, 6, 7] a
[1, 2, 3, 4, 5] a.concat(b,c);
[1, 2, 3, 4, 5, 6, 7, 8, 9, [10,11]]

5slice() 方法可从已有的数组中返回指定的一个片段(slice),或者说是子数组,返回的是一个新的数组

参数a指定开始的位置必填,参数b指定结束的位置非必须,返回的新数组包含起始位置,不包含结束位置。并且后面的数值必须大于前面,负值的话就加上数组的长度,

var a = [1,2,3,4,5];

a.slice(2)
[3, 4, 5] //包含起始位置,默认到结尾 a.slice(2,4)
[3, 4] //不包含结束位置 a.slice(-1,-2) //后面的值必须大于前面
[] a.slice(-2,-1)//负数的话加上数组长度
[4]

6splice() 方法从数组中添加/删除元素,然后返回被删除的元素。它在原数组上修改数组

参数index,必选,指定开始的位置;number,可选,要删除的数量;item,可选,向数组添加的新元素

功能1插入:指定开始位置,删除数量为0,新的item

功能2删除:指定开始位置和删除数量,

功能3替换:指定开始位置,删除数量为1,新item

var a = [1,2,3,4,5];
a.splice(2)
[3, 4, 5] //包含起始位置 a.splice(5) //超过长度返回空数组
[] a.splice(1,2); //改变原来数组了
[2, 3]
a
[1, 4, 5] a.splice(3,2,111,222,[1,2])
[4, 5]
a
[1, 2, 3, 111, 222, [1,2]]

a.splice(0,1,0)
  a
  [0, 2, 3, 111, 222, [1,2]]

a.splice(0,0,0)
  a
  [0, 0, 2, 3, 111, 222, [1,2]]

7栈方法:后进先出

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度;

var a = [1,2,3,4,5];

a.push(7)
6 //返回值是新数组的长度, a
[1, 2, 3, 4, 5, 7] //改变原本数组了

pop()方法用于删除并返回数组的最后一个元素

a.pop()
7 //返回值是删除的数组项
a
[1, 2, 3, 4, 5]

队列方法:先进先出

unshift() 方法可向数组的头部添加一个或多个元素,并返回新的长度;

var a = [1,2,3,4,5];

a.unshift(7)
6 //返回数组长度
a
[7, 1, 2, 3, 4, 5] //改变数组

shift()方法用于删除并返回数组的第一个元素。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值

[7, 1, 2, 3, 4, 5]
a.shift()
7 //删除项
a
[1, 2, 3, 4, 5] var b= []; b.shift()
undefined //空数组的话返回值为undefined

ES5方法集合

在ES5新增的方法中接受两个参数,第一个参数都是function类型,必选,{currentValue:数组当前项的值;index:数组当前项的索引;array:数组对象}

第二个参数是当执行回调函数时指向的this(参考对象),不提供默认为window,就是第一个参数里面的this。

在执行ES5的方法中,原数组中新增加的元素将不会被 callback 访问到;若已经存在的元素被改变或删除了,则它们的传递到 callback 的值是 forEach 方法遍历到它们的那一个索引时的值

1forEach() 遍历数组的每一项,返回值为undefined。没有办法中止或者跳出 forEach 循环,除了抛出一个异常

2map() 遍历数组的每一项,callback每次执行后的返回值(没有指定返回值则返回undefined)组合起来形成一个新数组。

3filter() 遍历数组的每一项,并利用所有使得 callback 返回 true 或 等价于 true 的值 的元素创建一个新数组。(功能:数组去重啊)

4some() 遍历数组的每一项,直到找到一个使得 callback 返回一个“真值”(即可转换为布尔值 true 的值)。如果找到了这样一个值,some 将会立即返回 true。否则,some 返回 false。some方法可以理解成拥有跳出功能的forEach()函数,所以不一定所有项都遍历哦

5every() 遍历数组的每一项,直到它找到一个使 callback 返回 false(表示可转换为布尔值 false 的值)的元素。如果发现了一个这样的元素,every 方法将会立即返回 false。否则,callback 为每一个元素返回 true,every 就会返回 true,同上

6indexOf()使用严格相等(strict equality,即===)进行判断,第一个参数是查找的项,第二个是起始位置(默认是0),首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1

7lastIndexOf是反向从尾部开始查找,但是返回的索引下标仍然是正向的顺序索引,

8reduce() 为数组中的每一个元素依次执行回调函数,最后返回一个函数累计处理的结果,reduce的回调函数中的参数与前面的不同,多了第一个参数,是上一次的返回值,(功能:数组求和啊)

Array.reduce详解//带[]都是表示可选的参数
Array.reduce(callbak[,initialValue])
callback携带四个参数{
accumulator:累加器累加回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue --调用callback函数的返回值
currentValue:数组中正在处理的元素
currentIndex:数组中正在处理的当前元素的索引 --可选
array:调用reduce的数组 --可选
}
initialValue --可选
用作第一个调用 callback的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错
(如果没有提供初始值,那么accumulator就是数组第一个元素,currentValue从第二个元素开始)
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue; // 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
{
accumulator:1->3->6->10
currentValue:2->3->4
}

9isArray() 判断是否是数组;Object.prototype.toString.call([]).slice(8, -1) === "Array";//true

ES6方法集合 待续...

初心不负 笔记-JS高级程序设计-引用类型篇-Array的更多相关文章

  1. 笔记-JS高级程序设计-BOM篇

    BOM提供了很多对象,用于访问浏览器的功能.这些功能与任何网页无关. 1BOM的核心对象是window,它代表浏览器的一个实例,它是通过JS访问浏览器窗口的一个借口,同时又是ECMAScript规定的 ...

  2. 读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图

    读书笔记 - js高级程序设计 - 第十三章 事件   canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好   有时候即使浏览器支持,操作系统如果缺缺 ...

  3. 读书笔记 - js高级程序设计 - 第五章 引用类型

      引用类型 和 类 不是一个概念 用typeof来检测属性是否存在 typeof args.name == "string"  需要实验 访问属性的方法 .号和[] 一般情况下要 ...

  4. 笔记-JS高级程序设计-基本概念篇

    1:JS中的一切(变量,函数名和操作符)都是区分大小写的 2:标识符(变量,函数,属性的名字,以及函数的参数),第一个字符必须是字母,下划线,或者美元$,书写方式采用驼峰式,不能将关键字作为标识符. ...

  5. 笔记-JS高级程序设计-变量,作用域和内存问题

    1在将一个值赋给变量时,解析器必须确认这个值是基本类值还是引用类型值,基本类型值是按值访问的,可以操作保存在在变量中的实际值,引用类型是保 存在内存中的对象,JS不允许直接访问内存中的位置,所以实际操 ...

  6. 读书笔记 - js高级程序设计 - 第十章 DOM

      文档元素 是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素 在xml中,任何元素都可以是文档元素 Node类型 Node.ELEMENT_NODE 元素 Node ...

  7. 读书笔记 - js高级程序设计 - 第八章 BOM

      BOM的核心对象是window 它表示浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过js访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,这意味着在网 ...

  8. 读书笔记 - js高级程序设计 - 第四章 变量 作用域 和 内存问题

      5种基本数据类型 可以直接对值操作 判断引用类型 var result = instanceof Array 执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这 ...

  9. 读书笔记 - js高级程序设计 - 第十二章 DOM2和DOM3

      Node类型的变化   访问元素的样式 myDiv.style.backgroundColor = "red" myDiv.style.width = "100px& ...

随机推荐

  1. Confluence 6 安装补丁类文件

    Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中.这些问题将会使用 Class 类文件同时在官方 J ...

  2. 树形dp 入门

    今天学了树形dp,发现树形dp就是入门难一些,于是好心的我便立志要发一篇树形dp入门的博客了. 树形dp的概念什么的,相信大家都已经明白,这里就不再多说.直接上例题. 一.常规树形DP P1352 没 ...

  3. doy09 文件处理,拷贝文件

    一\在python中打开文件,得到文件语句并赋值给一个变量 f=open('a.txt','r',encoding='utf-8'))  默认打开模式就为r: 2.通过句柄对文件进行操作 data=f ...

  4. LeetCode(78):子集

    Medium! 题目描述: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3 ...

  5. 在前台根据传过来的XX级别的数字转XX的名字

    需求描述:进入页面,展示列表,列表中有个XX级别的项,数据库中的级别使用1234来存放的,现在要转成对应的一级XX,二级XX,三级XX,四级XX. 吐槽一下:正常的做法应该是在后台,就把查出来的级别1 ...

  6. Win#password;;processon #clone;;disassemble;;source find

    1.密码学思维导图 源地址:https://www.processon.com/view/5a61d825e4b0c090524f5b8b 在这之前给大家分享 如何在 processon上搜索公开克隆 ...

  7. tensorflow(3):神经网络优化(ema,regularization)

    1.指数滑动平均 (ema) 描述滑动平均: with tf.control_dependencies([train_step,ema_op]) 将计算滑动平均与 训练过程绑在一起运行 train_o ...

  8. vue 的router的简易运用

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 简单(基本)的风光摄影照片后期处理-新手教程-ps照片后期基本处理

    前言 Photoshop虽然不是万能的,但缺少Photoshop却是万万不能的!风光摄影不是一个记录过程,做到的不能仅仅是“拍到了”,我觉得应该是一个创作的过程,特别是在后期处理的过程中,创作意味更浓 ...

  10. python 内置数据类型之数字

    目录: 1.2. 数字 1.2.1. 数字类型 1.2.2. 浮点数 1.2.3. 进制记数 1.2.4. 设置小数精度 1.2.5. 分数 1.2.6. 除法 1.2 数字   1.2.1 数字类型 ...