JavaScript Array 数组方法汇总

1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度
var arr = [1,2,3,4,5]
console.log(arr.push(5)) // 6
console.log(arr) // [1,2,3,4,5,5]
2.arr.unshift() 从前面添加元素,

var arr = [1,2,3,4,5]
console.log(arr.unshift(2)) // 6
console.log(arr) //[2,1,2,3,4,5]
3.arr.shift() 从前面删除元素,只能删除一个 返回值是删除的元素
var arr = [1,2,3,4,5]
console.log(arr.shift()) // 1
console.log(arr) // [2,3,4,5]

4.arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素

var arr = [1,2,3,4,5]
console.log(arr.pop()) // 5
console.log(arr) //[1,2,3,4]
var arr = [1,2,3,4,5]
console.log(arr.splice(2,2)) //[3,4]
console.log(arr) // [1,2,5]
6.arr.concat() 连接两个数组 返回值为连接后的新数组

var arr = [1,2,3,4,5]
console.log(arr.concat([1,2])) // [1,2,3,4,5,1,2]
console.log(arr) // [1,2,3,4,5]
7.str.split() 将字符串转化为数组
var str = '123456'
console.log(str.split('')) // ["1", "2", "3", "4", "5", "6"]
8.arr.sort() 将数组进行排序,返回值是排好的数组,默认是按照最左边的数字进行排序,不是按照数字大小排序的

var arr = [2,10,6,1,4,22,3]
console.log(arr.sort()) // [1, 10, 2, 22, 3, 4, 6]
var arr1 = arr.sort((a, b) =>a - b)
console.log(arr1) // [1, 2, 3, 4, 6, 10, 22]
var arr2 = arr.sort((a, b) =>b-a)
console.log(arr2) // [22, 10, 6, 4, 3, 2, 1]
9.arr.reverse() 将数组反转,返回值是反转后的数组

var arr = [1,2,3,4,5]
console.log(arr.reverse()) // [5,4,3,2,1]
console.log(arr) // [5,4,3,2,1]
10.arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组

let arr = [1,2,3,4,5]
console.log(arr.slice(1,3)) // [2,3]
console.log(arr) // [1,2,3,4,5]

11.arr.lastIndexOf()   和arr.indexOf()的功能一样,不同的是从后往前查找

var arr = [1,2,3,4,5,2]
var arr1 = arr.lastIndexOf(2)
console.log(arr1) // 5
let arr2 = arr.lastIndexOf(9)
console.log(arr2) // -1

12.arr.join() 方法用于把数组中的所有元素放入一个字符串

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join())

13.arr.toSource() 方法表示对象的源代码

function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
document.write(bill.toSource());

14.arr.toString() 方法可把数组转换为字符串,并返回结果

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.toString())

15.arr.toLocaleString()把数组转换为本地字符串

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.toLocaleString())

16.arr.valueOf() 方法返回 Array 对象的原始值。。

valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中

ES5新增

1. arr.indexOf() 查找某个元素的索引值,若有重复的,则返回第一个查到的索引值若不存在,则返回 -1

var arr = [1,2,3,4,5,2]
var arr1 = arr.indexOf(2)
console.log(arr1) // 1
var arr2 = arr.indexOf(9)
console.log(arr2) // -1
2. arr.forEach(value,index,array遍历数组,无return
 value --当前索引的值
 index --索引
 array --原数组

var arr = [1,2,3,4,5]
arr.forEach( (value,index,array)=>{
console.log(`value:${value} index:${index} array:${array}`)
})
// value:1 index:0 array:1,2,3,4,5
// value:2 index:1 array:1,2,3,4,5
// value:3 index:2 array:1,2,3,4,5
// value:4 index:3 array:1,2,3,4,5
// value:5 index:4 array:1,2,3,4,5 var arr = [1,2,3,4,5]
arr.forEach( (value,index,array)=>{
value = value * 2
console.log(`value:${value} index:${index} array:${array}`)
})
console.log(arr)
// value:2 index:0 array:1,2,3,4,5
// value:4 index:1 array:1,2,3,4,5
// value:6 index:2 array:1,2,3,4,5
// value:8 index:3 array:1,2,3,4,5
// value:10 index:4 array:1,2,3,4,5
// [1, 2, 3, 4, 5]
3.arr.map(value,index,array) 映射数组(遍历数组),有return 返回一个新数组
 value --当前索引的值
 index --索引
 array --原数组

var arr = [1,2,3,4,5]
arr.map( (value,index,array)=>{
value = value * 2
console.log(`value:${value} index:${index} array:${array}`)
})
console.log(arr)

ps: arr.forEach()和arr.map()的区别 
    1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
    2. arr.forEach() 没有return  arr.map() 有return

4. arr.filter(callback) 过滤数组,返回一个满足要求的数组

var arr = [1,2,3,4,5]
var arr1 = arr.filter( (i, v) => i < 3)
console.log(arr1) // [1, 2]
5.arr.every(value,index,array) 依据判断条件,数组的元素是否全满足,若满足则返回ture

var arr = [1,2,3,4,5]
var arr1 = arr.every( (i, v) => i < 3)
console.log(arr1) // false
var arr2 = arr.every( (i, v) => i < 10)
console.log(arr2) // true
6. arr.some() 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture

var arr = [1,2,3,4,5]
var arr1 = arr.some( (i, v) => i < 3)
console.log(arr1) // true
var arr2 = arr.some( (i, v) => i > 10)
console.log(arr2) // false
7. arr.reduce() 迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值
var arr = [0,1,2,3,4]
var arr1 = arr.reduce((preValue, curValue) =>
preValue + curValue
)
console.log(arr1) // 10
var arr2 = arr.reduce((preValue,curValue)=>preValue + curValue,5)
console.log(arr2) // 15
8. arr.reduceRight() 与arr.reduce()功能一样,不同的是,reduceRight()从数组的末尾向前将数组中的数组项做累加。
var arr = [0,1,2,3,4]
var arr1 = arr.reduceRight((preValue, curValue) =>
preValue + curValue
)
console.log(arr1) // 10
var arr2 = arr.reduceRight((preValue,curValue)=>preValue + curValue,5)
console.log(arr2) // 15
 
 

ES6新增数组

1. Array.from() 将伪数组变成数组,就是只要有length的就可以转成数组

var str = '12345'
console.log(Array.from(str)) // ["1", "2", "3", "4", "5"]
vsr obj = {0:'a',1:'b',length:2}
console.log(Array.from(obj)) // ["a", "b"]
2. Array.of() 将一组值转换成数组,类似于声明数组
var str = '11'
console.log(Array.of(str)) // ['11']
等价于

console.log(new Array('11'))  // ['11]
但是new Array()有缺点,就是参数问题引起的重载

console.log(new Array(2))   //[empty × 2]  是个空数组
console.log(Array.of(2)) // [2]
3. arr.copyWithin() 在当前数组内部,将制定位置的数组复制到其他位置,会覆盖原数组项,返回当前数组
var arr = [1,2,3,4,5,6,7]
var arr1 = arr.copyWithin(1)
console.log(arr1) // [1, 1, 2, 3, 4, 5, 6]
var arr2 = arr.copyWithin(1,2)
console.log(arr2) // [1, 3, 4, 5, 6, 7, 7]
var arr3 = arr.copyWithin(1,2,4)
console.log(arr3) // [1, 3, 4, 4, 5, 6, 7]
4. arr.find() 找到第一个符合条件的数组成员

var arr = [1,2,3,4,5,2,4]
var arr1 = arr.find((value, index, array) =>value > 2)
console.log(arr1) // 3
5. arr.findIndex() 找到第一个符合条件的数组成员的索引值

var arr = [1,2,3,4,5]
var arr1 = arr.findIndex((value, index, array) => value > 3)
console.log(arr1) // 3
6. arr.fill(target, start, end) 使用给定的值,填充一个数组,ps:填充完后会改变原数组
 target -- 待填充的元素
 start -- 开始填充的位置-索引
 end -- 终止填充的位置-索引(不包括该位置)

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
7. arr.includes() 判断数中是否包含给定的值

var arr = [1,2,3,4,5]
var arr1 = arr.includes(2)
console.log(arr1) // ture
var arr2 = arr.includes(9)
console.log(arr2) // false
var arr3 = [1,2,3,NaN].includes(NaN)
console.log(arr3) // true
ps:与indexOf()的区别:
1 indexOf()返回的是数值,而includes()返回的是布尔值
2 indexOf() 不能判断NaN,返回为-1 ,includes()则可以判断
8. arr.keys() 遍历数组的键名

var arr = [1,2,3,4]
var arr2 = arr.keys()
for (var key of arr2) {
console.log(key); // 0,1,2,3
}
9.arr.values() 遍历数组键值

var arr = [1,2,3,4]
var arr1 = arr.values()
for (var val of arr1) {
console.log(val); // 1,2,3,4
}
10. arr.entries() 遍历数组的键名和键值  返回迭代数组  迭代数组中每个值 前一个是索引值作为 key, 数组后一个值作为 value

var arr = [1,2,3,4]
var arr1 = arr.entries()
for (var e of arr1) {
console.log(e); // [0,1] [1,2] [2,3] [3,4]
}

JavaScript Array 数组方法汇总的更多相关文章

  1. JavaScript Array数组方法详解

    Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...

  2. JavaScript之数组方法整理

    Array概述      除了Object类型,最常用的类型:      实质:有序的数据列表,      特性:可以动态的调整数组的大小 创建数组的两种方式 构造函数创建方式  var arr = ...

  3. JavaScript Array filter() 方法

    JavaScript Array filter() 方法 var ages = [32, 33, 16, 40]; function checkAdult(age) { return age > ...

  4. javascript Array数组详解 各种方法

    1.数组的声明方法(1): arrayObj = new Array(); //创建一个数组.复制代码 代码如下: var arr1 = new Array(); (2):arrayObj = new ...

  5. JavaScript的数组方法(array)

    数组方法: 1. concat()  合并数组 2. join()  将数组的元素拼接成字符串,并指定分隔符 3. push()  往数组末尾添加一个元素,并返回新的数组的长度 4. reverse( ...

  6. JavaScript -Array.form方法

    Array.from方法可以把一个类数组或者课遍历对象转换为一个正真的数组 语法 Array.from(arrayLike[, mapFn[, thisArg]]) 参数 arrayLike 想要转换 ...

  7. js数组方法汇总

    下面主要汇总一下数组的方法 数组方法: 1.检测是否为数组的方法:Array.isArrray(); var arr=[1,2,3,4,5]; var str='string'; console.lo ...

  8. JavaScript常用数组方法

    JavaScript数组方法有以下这些: forEach() 方法对数组的每一个元素执行一次提供的函数. map() 方法创建一个新数组,其结果是该数组都执行一次函数,原函数保持不变. filter( ...

  9. javascript Array(数组)

      迁移时间:2017年5月25日08:05:33 UpdateTime--2017年3月31日16:29:08 一.数组(Array) (一)用法 //js声明数组的两大类方式 // 第一类(通常使 ...

随机推荐

  1. Spring 整合 ibatis

    是的,真的是那个不好用的ibatis,不是好用的mybatis. 由于工作需要用到ibatis需要自己搭建环境,遇到了不少的坑,做一下记录. 一.环境配置 Maven JDK1.6 (非常重要,使用S ...

  2. 研究分布式唯一ID生成,看完这篇就够

    很多大的互联网公司数据量很大,都采用分库分表,那么分库后就需要统一的唯一ID进行存储.这个ID可以是数字递增的,也可以是UUID类型的. 如果是递增的话,那么拆分了数据库后,可以按照id的hash,均 ...

  3. ubuntu环境下测试cache大小并校验

    Cache存储器:电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,规模较小,但速度很高的存储器,通常由SRAM(Static R ...

  4. 2019牛客暑期多校训练营(第三场)H题目

    题意:给你一个N×N的矩阵,求最大的子矩阵 满足子矩阵中最大值和最小值之差小于等于m. 思路:这题是求满足条件的最大子矩阵,毫无疑问要遍历所有矩阵,并判断矩阵是某满足这个条件,那么我们大致只要解决两个 ...

  5. Jmeter脚本录制--HTTP代理服务器

    Jmeter脚本录制功能依赖第三方工具Badboy,所以在安装了Jmeter之后,还需要再安装一个工具. Badboy本身自带浏览器,相关操作只能在Badboy上进行操作,偶尔可能会遇到浏览器兼容的问 ...

  6. Docker 容器基本操作[Docker 系列-2]

    ​Docker 入门及安装[Docker 系列-1] 镜像就像是一个安装程序,而容器则是程序运行时的一个状态. 查看容器 查看容器 启动 docker 后,使用 docker ps 命令可以查看当前正 ...

  7. Python3发送邮件功能

    Python3实现邮件发送功能 import smtplib from email.mime.text import MIMEText # 导入模块 class SendEmail: def send ...

  8. C# 二维码的生成

    nuget 搜索qrcodenet,然后选择下载gma.qrcodenet public partial class Form1 : Form { public Form1() { Initializ ...

  9. 夯实Java基础(十一)——内部类

    1.内部类的概念 内部类顾名思义:将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.对于很多Java初学者来说,内部类学起来真的是一头雾水,根本理解不清楚是个什么东西,包括我自己(我太菜 ...

  10. win系统上Anaconda国内镜像配置

    清华镜像2019.6.15已恢复 中科大镜像2019.7.1停机维护后恢复 1.打开anaconda prompt 2.添加清华镜像1:https://mirrors.tuna.tsinghua.ed ...