javascript原生数组总结

本文深入解析JavaScript数组的多种方法,包括join、reverse、sort、slice、splice等,阐述其功能与应用场景,如元素拼接、排序、截取及修改等,是前端开发者不可或缺的实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript数组方法总结

join()方法:

将数组中的所有元素都转换为字符串拼接在一起,可以传递参数来指定每个数组元素之间拼接的字符串,如果没有传递,则默认将数组元素之间的逗号一起输出

var a = [2,7,4,5,6,3];
console.log(a.join());   //2,3,4,5,6,7
console.log(a.join(" a "));   //2 a 3 a 4 a 5 a 6 a 7
console.log(a.join(""));    //234567

reverse()方法:

将数组元素颠倒顺序输出(不进行排序操作)
该方法的内部实现也很简单,对数组进行遍历,元素互相交换位置

console.log(a.reverse().join());    //3,6,5,4,7,2

sort()方法:

将数组中的元素按照字母表的顺序进行排序,如果需要按照非字母表的顺序进行排序,需要给sort方法传递一个比较函数,用该函数决定了两个参数在排好序的数组中的先后顺序

console.log(a.sort((a, b)=>b-a));   //[7, 6, 5, 4, 3, 2]
console.log(a.sort((a, b)=>a-b));   //[2, 3, 4, 5, 6, 7]

slice()方法:

传递两个参数,分别代表需要返回的数组元素的开始下标和结束下标,包含第一个参数指定下标的数组元素,但是不包含第二个参数指定下标的数组元素

即所取的数组下标区间为左闭右开区间

console.log(a.slice());   //[2, 3, 4, 5, 6, 7]
console.log(a.slice(2,4));   //[4, 5]

splice()方法:

参数不定,但是第一个参数指定要插入或者删除的元素的起始位置索引,第二个参数指定应该从数组中删除的元素的个数,之后的任意个参数都是要插入到数组中的参数

该方法会改变原数组,返回一个由删除数组元素组成的数组

var arr = [1,2,3,4,5];
// 只传入一个参数,该参数代表从该索引开始之后的所有数组元素都删除
console.log(arr.splice(2));   //[3,4,5]
console.log(arr);    // [1,2]
// 从下标为1的元素位置开始,删除0个元素,添加元素[6,7,8,9]到数组arr中
console.log(arr.splice(2,0,6,7,8,9));    // []
console.log(arr);    // [1, 2, 6, 7, 8, 9]

pop()方法和push()方法:

这两个方法将数组当做栈来使用

pop()方法是将数组的最后一位删除,减小数组长度并返回删除的数组元素

push()方法是在数组的尾部添加一个或者多个与元素,并返回数组新的长度

// 删除了元素9
console.log(arr.pop());    //9
console.log(arr);    //[1, 2, 6, 7, 8]
// 添加了两元素11,12
console.log(arr.push(11,12));    //7

unshift()方法和shift()方法:

这两个方法和上面的两个方法pop和push很像,只不过这两个方法是对数组的头部进行操作

unshift()方法是在数组的头部添加一个或者多个数组元素,数组中的元素依次后移,返回新数组的长度

shift()方法是从数组的头部删除一个元素并返回,后面的元素依次前移,填补数组头部的空缺

// 在头部添加两个元素0,111
console.log(arr.unshift(0,111));    //9
console.log(arr);    //[0, 111, 1, 2, 6, 7, 8, 11, 12]
// 删除头部元素0
console.log(arr.shift());   // 0

toString()方法和toLocaleString()方法

toString()方法将数组元素拼接为字符串输出,和不传入参数的join()方法一样

console.log(arr.toString());   //111,1,2,6,7,8,11,12
console.log(arr.toLocaleString());    //111,1,2,6,7,8,11,12

forEach()方法:

从头到尾遍历数组,第一个参数接收一个函数,这个函数有三个参数:数组元素,元素的索引,数组本身,通常只需要第一个参数,后面两个参数可以省略

方法的第二个参数是可选的,如果有第二个参数,则调用的函数被看做是调用第二个参数的方法

var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function (value){
  sum += value;
})
console.log(sum);   //15

map()方法:

调用数组的每个元素给指定的函数,并返回一个数组

var etc = [2,3,4,5];
var atc = etc.map((ele)=>ele*2);
console.log(atc);   //[4, 6, 8, 10]

filter()方法:

传递一个用来逻辑判定的函数,该函数返回true或者false,筛选出数组中符合条件的数组元素并返回

var array = [1,2,3,4,5,6,7,8,9,10];
var arrax = array.filter((ele) => ele%2==0);
console.log(arrax);   //[2, 4, 6, 8, 10]

every()方法和some()方法:

对数组元素应用指定的函数进行判定,返回true或者false

every()方法是指数组中的所有元素通过判定函数返回true时,该方法返回true

some()方法是只要有一个元素使得判定函数返回true,该方法就返回true

var ever = [1,2,3,4];
var eve = ever.every((ele) => ele > 3);
console.log(eve);    // false
var aver = ever.some((ele) => ele >3 );
console.log(aver);   // true

reduce()方法和reduceRight()方法:

使用指定的函数将数组元素进行组合,生成单个的值

reduce()方法需要两个参数,第一个参数是执行简化操作的函数,使用某种方法将两个值组合或者化简为一个值,并返回化简后的值,第二个参数是可选的,传递给函数作为初始值

reduce()方法传递的函数可以接收四个参数,其中第一个参数在第一次调用时使用的是reduce()方法的第二个参数,即初始值,以后的每次调用,该参数代表上一轮执行函数的结果

第二到四的参数分别为数组元素,数组索引和数组本身

reduceRight()方法和reduce()方法传递的参数一样,只是reduceRight()方法是从数组的尾部开始执行

var red = [1,2,3,4,5,6];
var redu = red.reduce((x,y) => x*y);
console.log(redu);    // 720
var reda = red.reduceRight((x,y) => x+y);
console.log(reda);    // 21

indexOf()方法和lastIndexOf()方法

indexOf()方法和lastIndexOf()方法搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引,没有找到就返回-1

这两个方法接收两个参数,第一个是需要搜索的值,第二个是可选的参数,该参数指定数组索引,从哪里开始搜索,如果省略该参数,则从头搜索,该参数也可以是负数,指定相对数组末尾的偏移量

indexOf()方法从头开始搜索,lastIndexOf()方法从末尾开始搜索

console.log(red.indexOf(3));    // 2
console.log(red.lastIndexOf(3));    // 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值