JavaScript数组Array的一些常用方法总结

目录
  • 一.JavaScript中创建数组的方式
  • 二、数组方法概括
  • 三、方法详解
    • 1.join()
    • 2.pop()
    • 3.shift()
    • 4.push()
    • 5.unshift()
    • 6.concat()
    • 7.slice()
    • 8.sort()
    • 9.reverse()
    • 10.toString()
    • 11.splice()
    • 12.valueOf()
    • 13.indexOf()
    • 14.lastIndexOf()
    • 15.forEach()
    • 16.map()
    • 17.filter()
    • 18.every()
    • 19.some()
    • 20.reduce()
    • 21.reduceRight()
    • 22.findIndex()
  • 总结

一.JavaScript中创建数组的方式

(1)使用 Array 构造函数:

var arr1 = new Array(); //创建一个空数组
var arr2 = new Array(10); // 创建一个包含20项的数组
var arr3 = new Array("zs","ls","ww"); // 创建一个包含3个字符串的数组

(2)使用数组字面量表示法:

var arr4 = []; //创建一个空数组
var arr5 = [10]; // 创建一个包含1项的数组
var arr6 = ["zs","ls","ww"]; // 创建一个包含3个字符串的数组

二、数组方法概括

方法名 功能 原数组是否改变
join() 使用分隔符,将数组转为字符串并返回 n
pop() 删除最后一位,并返回删除的数据 y
shift() 删除第一位,并返回删除的数据 y
push 在最后新增一个或多个数据,返回长度 y
unshift() 在第一位新增一或多个数据,返回长度 y
concat() 合并数组,并返回合并之后的数据 n
slice() 截取指定位置的数组,并返回 n
sort() 排序(字符规则),返回结果 y
reverse() 反转数组,返回结果 y
toString() 直接转为字符串,并返回 n
splice() 删除指定位置,并替换,返回删除的数据 y
valueOf() 返回数组对象的原始值 n
indexOf() 查询并返回数据的索引 n
lastIndexOf() 反向查询并返回数据的索引 n
forEach() 参数为回调函数,会遍历数组所有的项,回调函数接受三个参数,分别为value,index,self;forEach没有返回值 n
map() 同forEach,同时回调函数返回数据,组成新数组由map返回 n
filter() 同forEach,同时回调函数返回布尔值,为true的数据组成新数组由filter返回 n
every() 同forEach,同时回调函数返回布尔值,全部为true,由every返回true n
some() 同forEach,同时回调函数返回布尔值,只要由一个为true,由some返回true n
reduce() 归并,同forEach,迭代数组的所有项,并构建一个最终值,由reduce返回 n
reduceRight() 反向归并,同forEach,迭代数组的所有项,并构建一个最终值,由reduceRight返回 n
findIndex()
找到数组中第一个符合条件的元素的下标并不再遍历

n

三、方法详解

1.join()

功能:根据指定分隔符将数组中的所有元素放入一个字符串,并返回这个字符串。

参数:join(str);参数可选,默认为","号,以传入的字符作为分隔符。

    var arr = [1,2,3];
    console.log(arr.join());         //1,2,3
    console.log(arr.join("-"));      //1-2-3

通过join()方法可以实现重复字符串,只需传入字符串以及重复的次数,就能返回重复后的字符串,函数如下:

function repeatString(str, n) {
return new Array(n + 1).join(str);
}
console.log(repeatString("abc", 3)); // abcabcabc
console.log(repeatString("Hi", 5)); // HiHiHiHiHi

2.pop()

pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项

ar arr = [1,2,3];
console.log(arr.pop());     //3
console.log(arr);           //[1,2]---原数组改变

3.shift()

功能:方法用于删除并返回数组的第一个元素。

var arr = [1,2,3]
console.log(arr.shift());       //1
console.log(arr);               //[2,3]---原数组改变

4.push()

功能:向数组的末尾添加一个或更多元素,并返回新的长度。

var arr = [1,2,3];
console.log(arr.push("hello"));  //4
console.log(arr);                //[1,2,3,"hello"]---原数组改变
console.log(arr.push("a","b"));  //6
console.log(arr);                //[1,2,3,"hello","a","b"]---原数组改变

5.unshift()

功能:向数组的开头添加一个或更多元素,并返回新的长度。

var arr = [1,2,3];
console.log(arr.unshift("hello"));  //4
console.log(arr);                   //["hello",1,2,3]---原数组改变
console.log(arr.unshift("a","b"));  //6
console.log(arr);                   //["a","b","hello",1,2,3]---原数组改变

6.concat()

功能: 将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。

const arr1 = [1,2,3];
const arr2 = [4,5,6];
const arr3 = arr1.concat(arr2);
console.log(arr3);  //[1,2,3,4,5,6]

7.slice()

功能: 返回从原数组中指定开始下标到结束下标之间的项组成的新数组。

slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。

var arr = [1,3,5,7,9,11];
var arrCopy1 = arr.slice(1);
var arrCopy2 = arr.slice(1,4);
var arrCopy3 = arr.slice(1,-2);
var arrCopy4 = arr.slice(-4,-1);
console.log(arr); //[1, 3, 5, 7, 9, 11](原数组没变)
console.log(arrCopy1); //[3, 5, 7, 9, 11]
console.log(arrCopy2); //[3, 5, 7]
console.log(arrCopy3); //[3, 5, 7]
console.log(arrCopy4); //[5, 7, 9]

8.sort()

功能:对数组中的元素进行排序,默认是升序。

var arr = [6,1,5,2,3];
console.log(arr.sort());    //[1, 2, 3, 5, 6]
console.log(arr);           //[1, 2, 3, 5, 6]---原数组改变

9.reverse()

功能: 反转数组项的顺序。

var arr = [13, 24, 51, 3];
console.log(arr.reverse()); //[3, 51, 24, 13]
console.log(arr); //[3, 51, 24, 13](原数组改变)

10.toString()

功能:转换成字符串,类似于没有参数的join()。该方法会在数据发生隐式类型转换时被自动调用,如果手动调用,就是直接转为字符串。

var arr = [1,2,3];
console.log(arr.toString());     //1,2,3
console.log(arr);                //[1,2,3]---原数组未改变

11.splice()

功能:很强大的数组方法,它有很多种用法,可以实现删除、插入和替换。

删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。例如, splice(0,2)会删除数组中的前两项。

插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。例如,splice(2,0,4,6)会从当前数组的位置 2 开始插入4和6。

替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice (2,1,4,6)会删除当前数组位置 2 的项,然后再从位置 2 开始插入4和6。

splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项,如果没有删除任何项,则返回一个空数组。

var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);
console.log(arr); //[5, 7, 9, 11]
console.log(arrRemoved); //[1, 3]
var arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr); // [5, 7, 4, 6, 9, 11]
console.log(arrRemoved2); // []
var arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr); // [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3); //[7]

12.valueOf()

功能:返回数组的原始值(一般情况下其实就是数组自身),一般由js在后台调用,并不显式的出现在代码中

var arr = [1,2,3];
console.log(arr.valueOf());         //[1,2,3]
console.log(arr);                   //[1,2,3]
//为了证明返回的是数组自身
console.log(arr.valueOf() == arr);  //true

13.indexOf()

功能:根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1。该方法是查询方法,不会对数组产生改变。

参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

var arr = ["h","e","l","l","o"];
console.log(arr.indexOf("l"));        //2
console.log(arr.indexOf("l",3));      //3
console.log(arr.indexOf("l",4));      //-1
console.log(arr.indexOf("l",-1));     //-1
console.log(arr.indexOf("l",-3));     //2

14.lastIndexOf()

功能:根据指定的数据,从右向左,查询在数组中出现的位置,如果不存在指定的数据,返回-1。该方法是查询方法,不会对数组产生改变。

参数:lastIndexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

var arr = ["h","e","l","l","o"];
console.log(arr.lastIndexOf("l"));        //3
console.log(arr.lastIndexOf("l",3));      //3
console.log(arr.lastIndexOf("l",1));      //-1
console.log(arr.lastIndexOf("l",-3));     //2
console.log(arr.lastIndexOf("l",-4));     //-1

15.forEach()

功能:对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。

参数:  都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。

var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + '|' + index + '|' + (a === arr));
});
// 输出为:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true

16.map()

功能:对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

如果你想要数组里的每一个值都发生变化就使用map

 let arr = [10, 30, 50, 60, 120, 230, 340, 450]
        let newArr = arr.map(n => {
            return n * 2
        })
        console.log(newArr);

17.filter()

功能: 过滤,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(x, index) {
return index % 3 === 0 || x >= 8;
});
console.log(arr2); //[1, 4, 7, 8, 9, 10]

18.every()

功能:判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.every(function(x) {
return x < 10;
});
console.log(arr2); //true
var arr3 = arr.every(function(x) {
return x < 3;
});
console.log(arr3); // false

19.some()

功能: 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.some(function(x) {
return x < 3;
});
console.log(arr2); //true
var arr3 = arr.some(function(x) {
return x < 1;
});
console.log(arr3); // false

20.reduce()

功能:从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。

参数:

第一个参数是:accumulator是当前聚合值,

第二个参数是: current是数组循环时的当前元素

第三个参数是: index 是数组元素的索引值

第四个参数是: Array 是数组本身

int : 是accumulator的初始值 可以自行进行设置

一般常用的是前面的两个参数,后面两个参数不常用,常用的使用场景便是数组的求和

 // 作用:对数组中所有的内容进行汇总   要传至少两个值
        let arr = [10, 30, 50, 60, 120, 230, 340, 450]
        let newArr = arr.reduce((pre, n) => {
            return pre + n
        }, 0)
        console.log(newArr);

21.reduceRight()

功能:(与reduce类似)从数组的最后一项开始,向前逐个遍历到第一位,迭代数组的所有项,然后构建一个最终返回的值。

参数:同reduce。

var arr = [1,2,3,4,5];
var sum = arr.reduceRight(function(pre, cur, index, array){
return pre + cur;
},10);
console.log(sum); //25

22.findIndex()

功能: 返回数组中满足提供的测试函数的第一个元素的索引。若没有则返回-1。

let arr = [10, 2, 9, 17, 22];
let index = arr.findIndex((item) => item > 13)
console.log(index);  // 3

总结

到此这篇关于JavaScript数组Array的一些常用方法总结的文章就介绍到这了,更多相关JavaScript数组Array方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JavaScript中数组Array.sort()排序方法详解

    JavaScript中数组的sort()方法主要用于对数组的元素进行排序.其中,sort()方法有一个可选参数.但是,此参数必须是函数. 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行排序,如果想按照其他标准进行排序,就需要进行传一个参数且为函数,该函数要比较两个值,并且会返回一个用于说明这两个值的相对顺序的数字. 1.对数字数组进行由小到大的顺序进行排序. 代码: var arr = [22,12,3,43,56,47,4]; arr.sort();

  • JS array 数组详解

    1.数组的声明方法 (1): arrayObj = new Array(); //创建一个数组. 复制代码 代码如下: var arr1 = new Array(); (2):arrayObj = new Array([size]) 创建一个数组并指定长度,注意不是上限,是长度. 复制代码 代码如下: var a = new Array(5); (3):arrayObj = new Array([element0[, element1[, ...[, elementN]]]]) 创建一个数组并赋

  • js判断是否为数组的函数: isArray()

    今天刚好在学习支付宝 JS 框架 base.js .瞄了一下,实现是这样的: 复制代码 代码如下: if (value instanceof Array || (!(value instanceof Object) && (Object.prototype.toString.call((value)) == '[object Array]') || typeof value.length == 'number' && typeof value.splice != 'unde

  • JS 操作Array数组的方法及属性实例解析

    本文总结了Array数组的3个属性,length 属性.prototype 属性.constructor 属性使用,并附注数组对象的8个分类及多个方法使用,具体如下: 对象的3个属性1.length 属性 length 属性Length属性表示数组的长度,即其中元素的个数.因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1.和其他大多数不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意.当length属性被设置得更大时,整个数组的状态事实上

  • JS中数组Array的用法示例介绍

    new Array() new Array(len) new Array([item0,[item1,[item2,...]]] 使用数组对象的方法: var objArray=new Array(); objArray.concact([item1[,item2[,....]]]-------------------将参数列表连接到objArray的后面形成一个新的数组并返回,原有数组不受影响.如:var arr=["a","b","c"];

  • JS数组(Array)处理函数整理

    1.concat() 连接两个或更多的数组 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 例如: 复制代码 代码如下: <script type="text/javascript">         var arr = [1, 2, 3];         var arr1 = [11, 22, 33];         document.write(arr.concat(4, 5, arr1));  </script> 输出结果: 1,2,3,

  • js删除Array数组中指定元素的两种方法

    本节内容: js删除Array数组中指定元素 方法一, /* * 方法:Array.remove(dx) 通过遍历,重构数组 * 功能:删除数组元素. * 参数:dx删除元素的下标. */ Array.prototype.remove=function(dx) { if(isNaN(dx)||dx>this.length){return false;} for(var i=0,n=0;i<this.length;i++) { if(this[i]!=this[dx]) { this[n++]=

  • JS Array.slice 截取数组的实现方法

    slice定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) 参数 描述 start 必需.规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位置.也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推. end 可选.规定从何处结束选取.该参数是数组片断结束处的数组下标.如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素.如果这个参数是负数,那么它规定的是从数组尾部开始算

  • js中数组Array的一些常用方法总结

    var list = new Array()是我们在js中常常写到的代码,今天就总结哈Array的对象具有哪些方法. list[0] = 0; list[1] = 1; list[2] = 2; 或者这样声明:var list = [0,1,2] 1 shift()t:删除数组的第一个元素,返回删除的值.这里是0 2 unshift(3,4):把参数加载数组的前面,返回数组的长度.现在list:中是3,4,0,1,2 3pop():删除数组的最后一个元素,返回删除的值.这里是2. 4push(3

  • JavaScript数组Array的一些常用方法总结

    目录 一.JavaScript中创建数组的方式 二.数组方法概括 三.方法详解 1.join() 2.pop() 3.shift() 4.push() 5.unshift() 6.concat() 7.slice() 8.sort() 9.reverse() 10.toString() 11.splice() 12.valueOf() 13.indexOf() 14.lastIndexOf() 15.forEach() 16.map() 17.filter() 18.every() 19.som

  • Javascript数组Array方法解读

    接上一篇<Javascript数组Array基础介绍>,这一篇详细介绍Array的所有方法. 所有数组的方法都定义在Array.prototype上,而Array.prototype本身也是一个数组. array.concat() 浅复制一份当前数组,并把接收到的参数附加到新数组的末尾.原数组不改变. 语法 array.concat(value1, value2, ..., valueN) 参数为需要合并的数组或非数组值 var arr1 = [1, 2, 3]; var obj = {ani

  • JavaScript数组Array对象增加和删除元素方法总结

    本文实例总结了JavaScript数组Array对象增加和删除元素方法.分享给大家供大家参考.具体分析如下: pop 方法 移除数组中的最后一个元素并返回该元素. arrayObj.pop( ) 必选的 arrayObj 引用是一个 Array 对象. 说明 如果该数组为空,那么将返回 undefined. shift 方法 移除数组中的第一个元素并返回该元素. arrayObj.shift( ) 必选的 arrayObj 引用是一个 Array 对象. 说明 shift 方法可移除数组中的第一

  • JavaScript 数组- Array的方法总结(推荐)

    JavaScript中的Array类型是经常用到的,Array类型也提供了很多方法能实现我们需求,下面我们来总结一下 一.创建Array的方法 var colors=new Array(); var colors=new Array(3);//创建一个长度为3的数组 var colors=new Array("red","blue")//创建一个数组["red","blue"] 当然,上面的new可以省略不写,如 var co

  • TypeScript 数组Array操作的常用方法

    目录 一.数组的声明 二.数组初始化 三.数组元素赋值.添加.更改 四.删除 五.合并.断开数组 六.查找数组元素位置 七.连接数组元素 八.排序.反序数组 九.遍历请看这里 数组是一个很简单的数据结构,但是每次使用TypeScript的数组的时候又总是忘记怎么用了,干脆直接弄成干货,忘了过来看看. 一.数组的声明 let array1:Array<number>; let array2:number[]; 二.数组初始化 let array1:Array<number> = ne

  • Javascript数组Array基础介绍

    Javascript,一门神奇的语言,它的数组也同样独特.我们要去其糟粕,取其精华,把常用的最优实践总结出来.如有错误,请指出. javascript数组是一种类数组的对象,拥有对象的特性.当属性名是小而连续的整数时,应该使用数组,否则,使用对象. 数组来源 所有的数组都是Array构造出来的,我们来测试一下constructor这个属性. var arr = []; arr.constructor === Array; // true arr.constructor === Array.pro

  • javascript 数组(list)添加/删除的实现

    javascript 数组Array(list)添加/删除 unshift:将参数添加到原数组开头,并返回数组的长度 pop:删除原数组最后一项,并返回删除元素的值:如果数组为空则返回undefined push:将参数添加到原数组末尾,并返回数组的长度 concat:返回一个新数组,是将参数添加到原数组中构成的 splice(start,deleteCount,val1,val2,-):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,- reverse:将

  • javascript数组常用方法汇总

    本文为大家总结了javascript数组常用方法,具体内容如下 1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔数组的各个元素.如果不指定分隔符,默认使用逗号.案例如下: var a=[1,2,3]; a.join();//=> "1,2,3" 因为没有指定分隔符,默认为逗号. a.join("+");//=> "1+2+3"

  • JavaScript数组常用方法实例讲解总结

    目录 数组常用方法 concat() 方法 join() 方法 pop() 方法 push() 方法 reverse() 方法 shift() 方法 slice() 方法 sort() 方法 splice() 方法 toSource() 方法 toString() 方法 toLocaleString() 方法 unshift() 方法 valueOf() 方法 导读:在实际开发中,前端工程师除了写页面布局及样式还要对后端返回的数据进行处理,返回的数据大多数是json格式,一般都是返回一个对象或者

随机推荐