title: JavaScript中Array方法总览

toc: true

date: 2018-10-13 12:48:14


push(x)

将x添加到数组最后,可添加多个值,返回数组长度。改变原数组

var arr = [1,2,3];
arr.push(4); // 返回4, arr变为[1, 2, 3, 4]
arr.push(5,6); // 返回6, arr变为[1, 2, 3, 4, 5, 6]

unshift(x)

将x添加到数组开头,可添加多个值,返回数组长度。改变原数组

var arr = [4,5,6];
arr.push(3); // 返回4, arr变为[3, 4, 5, 6]
arr.push(1,2); // 返回6, arr变为[1, 2, 3, 4, 5, 6]

pop()

删除数组最后一个元素,返回被删除元素。改变原数组

shift()

删除数组第一个元素,返回被删除元素。改变原数组

join(x)

使用x将数组连接为字符串,x可以为任意对象。不改变原数组

reverse()

反转数组。改变原数组

slice(start,end)

返回索引start到索引end(不包含end)的新数组。不改变原数组

splice(index, count, value)

从索引为index处删除count个元素,插入value,value可为多个值。改变原数组

sort()

对数组排序。改变原数组

var a = [11,9,21,31];
a.sort();
// a为 (4) [11, 21, 31, 9]

sort排序是根据位来进行排序,而非值的大小,先比较第一位,数字在前,字母在后,若相同则比较后面位。

a = [31, 22, 27, 1, 9]
a.sort((a, b)=>{
return a - b
})
console.log(a) // [1, 9, 22, 27, 31] 按数值大小正序排列

toString()

将数组中的元素用逗号拼接成字符串。不改变原数组

toLocaleString()

将数组中的元素使用各自的toLocaleString()转换后用逗号拼接成字符串。不改变原数组

var a = [1, new Date(), 'a', {m: 1}];
var result = a.toLocaleString();
console.log(result); // '1,2018/10/3 下午9:23:59,a,[object Object]'

indexOf(value)

从索引0开始查找value,如果有,返回匹配到的第一个索引,否则返回-1。不改变原数组

lastIndexOf(value)

从最后开始查找value,如果有,返回匹配到的第一个索引,否则返回-1。不改变原数组

concat(value)

将原数组和value拼接成新数组。不改变原数组

var a = [1, 2], b = [3, 4], c = 5;
var result = a.concat(b, c);
console.log(result); // [1, 2, 3, 4, 5]
console.log(a); // [1, 2] b = [3, [4]];
result = a.concat(b, c);
console.log(result); // [1, 2, 3, [4], 5] concat对于嵌套数组无法拉平
console.log(a); // [1, 2]

fill(value, start, end)

使用给定value填充数组,从索引start开始end结束,不包含end。改变原数组

var a = [1, 2, 3, 4, 5];
var result = a.fill(0, 2, 3);
console.log(result); // [1, 2, 0, 4, 5]
console.log(a); // [1, 2, 0, 4, 5] a = [1, 2, 3, 4, 5];
console.log(a.fill(1)); // [1, 1, 1, 1, 1] 参数一个时,将该参数覆盖填充到数组每一项
a = [1, 2, 3, 4, 5];
console.log(a.fill(1, 2)); // [1, 2, 1, 1, 1] 只有start时,从索引start开始填充到数组末位
a = [1, 2, 3, 4, 5];
console.log(a.fill(1, -2)); // [1, 2, 3, 1, 1] 只有start且为负数时,从倒数|start|位开始填充到数组末位

flat()

将二维数组变为一位数组,只能将第二层嵌套数组“拉平”。不改变原数组

map(fn)

对数组中每一个元素执行fn函数,返回所有返回值组成的数组。不改变原数组

flatMap()

相当于flat和map的结合。不改变原数组

copyWithin(target, start, end)

将数组从start到end索引的元素(不包含end)复制到target开始的索引位置。改变原数组

let a = [1, 2, 3, 4, 5]
let result = a.copyWithin(0, 3, 5)
console.log(result) // [4, 5, 3, 4, 5]
console.log(a) // [4, 5, 3, 4, 5] 索引3到5的元素为4和5,复制到从0开始的位置,替换掉了1和2 a = [1, 2, 3, 4, 5]
console.log(a.copyWithin(2)) // [1, 2, 1, 2, 3] 参数只有一个时,start默认为0,end默认为数组长度-1

entries()

返回一个新的Array迭代器对象,可用for...of遍历。不改变原数组

每一次next返回[index,value]

keys()

返回一个新的Array迭代器对象,可用for...of遍历。不改变原数组

每一次next返回{value,done}

value实际为数组的索引:0,1,2,...

keys()

返回一个新的Array迭代器对象,可用for...of遍历。不改变原数组

每一次next返回{value,done}

value实际为数组中每一项的值

forEach()

遍历数组。不改变原数组

var a = [1,2,3,4,5];
var result = a.forEach(function(value, index) {
console.log(value, index);
// 1 0
// 2 1
// 3 2
// 4 3
// 5 4
});
console.log(result); // undefined
console.log(a); // [1, 2, 3, 4, 5]

every(fn)

判断是否数组中所有元素都满足fn,返回true或false。不改变原数组

some(fn)

判断是否数组有元素满足fn,返回true或false。不改变原数组

filter(fn)

返回数组中满足fn的所有元素(以新数组的形式)。不改变原数组

find(fn)

返回数组中第一个满足fn函数中条件的元素值,没有则返回undefined。不改变原数组

findIndex(fn)

返回数组中第一个满足fn函数中条件的元素索引,没有则返回undefined。不改变原数组

includes(value)

返回一个布尔值,表示数组中是否包含value。不改变原数组

reduce()

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

相当于一个函数累加器,接受一个回调函数的结果,然后将前一次的函数结果再和下一次的数据再次执行此回调函数。

不改变原数组

reduceRight()

类似于reduce(),只是从数组末尾开始进行累计。不改变原数组

JavaScript中Array方法总览的更多相关文章

  1. Javascript 中 Array的 sort()和 compare()方法

    Javascript 中 Array的 sort()方法其实是把要排序的内容转化为string(调用 toString()), 然后按照字符串的第一位 ascii 码先后顺序进行比较,不是数字. 我们 ...

  2. Javascript中Array(数组)对象常用的几个方法

    Javascript中Array数组的几个常用方法 pop()  --获取数组中末尾的元素 shift() --获取数组中首位元素 push() --在数组中末尾增加元素 slice()  --按照下 ...

  3. JavaScript中reduce()方法

    原文  http://aotu.io/notes/2016/04/15/2016-04-14-js-reduce/   JavaScript中reduce()方法不完全指南 reduce() 方法接收 ...

  4. 详解 JavaScript 中 splice() 方法

    splice() 方法是一个比较少用的方法,但是功能确实很好,并且在我们 coding 的时候,经常有需要 splice() 方法,先介绍一下该方法. 在 JavaScript 中 splice() ...

  5. JavaScript 中Array数组的几个内置函数

    本文章内容均参考<JavaScript高级程序设计第三版> 今天在看JavaScript书籍的时候,看到之前没有了解过的JavaScript中Array的几个内置函数对象,为了之后再开发工 ...

  6. JavaScript中Array(数组) 对象

    JavaScript中Array 对象 JavaScript中创建数组有两种方式 (一)使用直接量表示法: var arr4 = []; //创建一个空数组var arr5 = [20]; // 创建 ...

  7. JavaScript中的方法、方法引用和参数

    首先,我们来看一段代码,如果觉得不甚明白的,则本文会对你有益: var player = function (e) {             return (function f(m) {      ...

  8. JavaScript中的方法

    JavaScript中的方法 在JavaScript中,可以通过对象来调用对应的方法.在JavaScript中,有三个重要的window对象方法:用于显示警告信息的alert.用于显示确认信息的con ...

  9. 浅谈 JavaScript 中 Array 类型的方法使用

    前言:Array 类型是 JavaScript 中除了 Object 类型以外最常用的类型. 一.创建数组 JavaScript 中的数组与其他语言中的数组有着很大的区别.例如Java.PHP等语言中 ...

随机推荐

  1. 【POJ 1741】 Tree

    [题目链接] http://poj.org/problem?id=1741 [算法] 点分治 要求距离不超过k的点对个数,不妨将路径分成两类 : 1. 经过根节点 2. 不经过根节点 考虑第1类路径, ...

  2. org/eclipse/jetty/util/component/Container$Listener

    转自:https://blog.csdn.net/husheng8891/article/details/10200965?locationNum=9&fps=1 项目Demo开发的时候,发布 ...

  3. 切换JDK版本quick

    最近遇到一个小问题,同时做两个项目,jdk版本一个是5,一个是6,我也去网上找了找方法,但是感觉不是特别好用,最后自己通过一些环境变量设置的技巧和一些批处理命令来使得这件事情只需要双击,输入一个数字回 ...

  4. .NET Core 开发:永远的Hello Word

    从.NET Core发布到现在已经很长一段时间了,园子里的各路大神也和它打的火热,本着与时俱进,啥火学啥的原则,我也开始了我的.NET Core学习之旅. 简介 .NET从2002年发行到现在,从呱呱 ...

  5. POJ 1128 Frame Stacking 拓扑排序+暴搜

    这道题输出特别坑.... 题目的意思也不太好理解.. 就解释一下输出吧.. 它让你 从下往上输出. 如果有多种情况,按照字典序从小往大输出... 就是这个多种情况是怎么产生的呢. 下面给一组样例. 很 ...

  6. 洛谷P3356 火星探险问题(费用流)

    题目描述 火星探险队的登陆舱将在火星表面着陆,登陆舱内有多部障碍物探测车.登陆舱着陆后,探测车将离开登陆舱向先期到达的传送器方向移动.探测车在移动中还必须采集岩石标本.每一块岩石标本由最先遇到它的探测 ...

  7. jmeter的认识

    jmeter JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试. 它能够很好的支持各种常见接 ...

  8. 《Exception》第八次团队作业:Alpha冲刺(第一天)

    一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.掌握软件测试基础技术.2.学习迭代式增量软 ...

  9. CSS布局总结(二)

    前言:今天实训课依旧很水,继续总结,今天主要补了一下布局的知识.响应式的作业还没做完... 一.两列布局 html部分 <div class="parent"> < ...

  10. webpack加载器(Loaders)

    加载器(Loaders) loader 是对应用程序中资源文件进行转换.它们是(运行在 Node.js 中的)函数,可以将资源文件作为参数的来源,然后返回新的资源文件. 示例 例如,你可以使用 loa ...