js-常用的数组操作方法(改变原数组,不改变原数组)

本文详细介绍了JavaScript中数组的常用操作方法,如shift(),unshift(),pop(),push(),splice(),reverse(),sort(),concat(),slice(),join(),filter(),find(),includes(),indexOf(),lastIndexOf(),findIndex(),some(),every()等,区分了原地修改数组和创建新数组的区别。

一、改变原数组的

1.shift:删除原数组的第一项,并返回删除元素的值,如果原数组为空则返回undefined

var a = [1,2,3,4,5];
var b = a.shift(); 
console.log(a)//[2,3,4,5]
console.log(b)//[1]

2.unshift:将参数添加到原数组的第一位,并且返回数组的长度

var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a: b:7
console.log(a)//[-2,-1,1,2,3,4,5]
console.log(b)//7

3.pop:删除原数组的最后一项,并返回删除元素的值;如果数组为空则返回undefined

var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5
console.log(a)//[1,2,3,4]
console.log(b)//5

4.push:将参数添加到原数组末尾,并返回数组的长度

var a = [1,2,3,4,5];
var b = a.push(6,7);
console.log(a)//[1,2,3,4,5,6,7]
console.log(b)//7

5.splice(start,deleteNumber,item1,item2,…):从start位置开始删除deleteNumber数量,并从该位置起插入 item

    let a = [1, 2, 3, 4, 5];
    let b = a.splice(2, 2, 7, 8, 9);
    console.log(a); //[1, 2, 7, 8, 9, 5]
    console.log(b); //[3, 4]、返回删除的项
    let c = a.splice(0, 1);
    console.log(c); //[1]同shift、删除第一个
    let d = a.splice(0, 0, -2, -1);
    console.log(d); //同unshift、向数组前面添加
    let e = a.splice(a.length - 1, 1);
    console.log(e); //[5]、同pop、返回删除项
    let f = a.splice(a.length, 0, 6, 7); //同push
    console.log(f); //返回空数组

7.reverse():将数组反序

let a = [1,2,3,4,5];
let b = a.reverse();
console.log(a)//[5,4,3,2,1]
console.log(b)//[5,4,3,2,1]

 8.sort(sortfunction):按指定的参数对数组进行排序

let a = [1,2,3,4,5];
let b = a.sort();
console.log(b)//[1,2,3,4,5]

  9.array.push.apply():进行数组合并

let arr1=[1,2];
let arr2=[3,4,5];
arr2.push.apply(arr2,arr1);//[3,4,5,1,2]
//调用arr2.push这个函数实例的apply方法,同时把arr1当作参数传入,这样arr2.push这个方法就会遍历arr1数组的所有元素,将arr1的元素存入arr2数组,使arr2数组发生改变。

二、不改变原数组 

1.concat():可以将两个数组合并在一起,如果是使用ES6语法也可以用扩展运算符…来代替

var a = [1,2,3,4,5];
var b = a.concat(6,7); 
console.log(a)//[1,2,3,4,5]
console.log(b)//[1,2,3,4,5,6,7]

let c = [1,2,3,4,5];
let d = [6,7,8,9];
let e = a.concat(b);
let f = [...a, ...b];
// 使用 ...
console.log(e);// [1,2,3,4,5,6,7,8,9]
console.log(f);// [1,2,3,4,5,6,7,8,9]


2.slice(start,end):可以截取出数组某部份的元素为一个新的数组,有两个必填的参数,第一个是起始位置,第二个是结束位置(参数只有一个时,截取参数个数,返回没有截取的新数组。也可以操作字符,同理)

var a = [1,2,3,4,5];
var b = a.slice(2,5);
console.log(a)//[1,2,3,4,5]
console.log(b)//[3,4,5]

2.join("任意分隔符"):将数组的元素组起一个字符串,不写分割符号的话就是默认的,号隔开

    let a = [1, 2, 3, 4, 5];
    let b = a.join();
    console.log(a); //[1, 2, 3, 4, 5]
    console.log(b); //1,2,3,4,5
    let c =a.join("|")
    console.log(c)//1|2|3|4|5

3.filter()将数组进行过滤,返回一个新的数组,不改变原数组

    let a = [1, 2, 3, 4, 5, 6, 7, 8];
    let b = a.filter(i => i > 3);
    console.log(b); //[4, 5, 6, 7, 8]

4.find():会将数组中的元素遍历并且做判断,并会返回第一个符合判断条件的元素,如果没有元素符合则会返回undefined。

let a = [1,2,3,4,5,6,7,8];
console.log(a.find(i => i > 3)); // 4
console.log(a.find(i => i < 0)); // undefined

5.includes():会判断数组中是否包含某个值,如果有包含就返回true,否则返回false,有两个参数,第一个参数表示要判断的值( 必填),第二个参数表示从数组的哪个位置开始判断( 选填)。

 let a = [1, 2, 3, 4, 5, 6, 7, 8];
    console.log(a.includes(2));// true
    console.log(a.includes(2, 2));// false

6.indexOf():会判断数组中是否包含某个值(从左到右),如果有包含就返回这个值在数组中第一个元素的索引值,如果没有就返回-1,有两个参数,第一个参数表示要判断的值( 必填),第二个参数表示从数组的哪个位置开始判断( 选填,预设为0 )。

  let a = [1, 2, 3, 4, 5, 6, 7, 8];
    console.log(a.indexOf(4)); // 3
    console.log(a.indexOf(4, 5)); // -1 ( 在6,7,8中搜索有沒有4 )

7. lastIndexOf():会判断数组中是否包含某个值(由右而左),如果有包含就返回这个值在数组中第一个元素的索引值,如果没有就返回-1,这个方法有两个参数,第一个参数表示要判断的值( 必填),第二个参数表示判断从数组的哪个位置开始从右往左查找( 选填,默认为整个数组长度-1 )。

    let a = [1, 2, 3, 4, 5, 6, 7, 4];
    console.log(a.lastIndexOf(4)); //7
    console.log(a.lastIndexOf(4, 2)); // -1 ( 在1, 2, 3中搜索有沒有4 )

8.findIndex():会将数组中的遍历并左判断,并会返回第一个符合判断条件元素的位置索引,如果没有元素符合则会返回-1。 

let a = [1,2,3,4,5,6,7,8];
console.log(a.findIndex( i => i > 3)); // 3
console.log(a.findIndex(i => i < 0)); // -1

9.some():遍历素组只要其中一个满足条件就会返回true,反之false

    let a = [1, 2, 3, 4, 5, 6];
    console.log(a.some(i => i > 3));
    // 返回 true,因为 4、5、6 大于 3
    console.log(a.some(i => i > 6));
    // 返回 fasle,因为全都小于或等于 6

10.every():会将素组进行遍历,只要其中一个元素不满足要求就会返回false,反之全部符合就会返回ture

let a = [1,2,3,4,5,6];
console.log(a.every(i => i > 3));
// fasle ( 因为1、2 小于 3,3 等于 3 )
console.log(a.every(i => i > 0));
// true

JavaScript数组有很多内置方法,可以操作和处理数据。以下是JavaScript数组的所有方法列表: 1. `concat()` - 连接两个或多个数组。 2. `copyWithin()` -数组内部将一段元素拷贝到另一个位置。 3. `entries()` - 返回一个迭代器对象,可以遍历数组所有的键值对。 4. `every()` - 检查数组中的所有元素是否满足一个条件。 5. `fill()` - 用静态值填充一个数组中的所有元素。 6. `filter()` - 通过指定条件过滤出符合条件的数组元素。 7. `find()` - 返回找到的第一个元素,满足条件。 8. `findIndex()` - 返回目标元素索引,满足条件。 9. `forEach()` - 遍历数组,对每个元素执行指定的操作。 10. `includes()` - 判断数组是否包含指定元素。 11. `indexOf()` - 返回指定元素第一个出现的位置索引。 12. `join()` - 连接数组元素,返回字符串。 13. `keys()` - 返回一个迭代器对象,可以遍历数组的键。 14. `lastIndexOf()` - 返回指定元素最后一次出现的位置索引。 15. `map()` - 遍历数组,对每个元素执行指定的操作,将结果放入新数组。 16. `pop()` - 删除数组最后一个元素。 17. `push()` -数组末尾添加一个或多个元素。 18. `reduce()` -数组中的每个元素执行指定的操作,累积计算并返回最终结果。 19. `reduceRight()` - 与reduce()方法类似,过是从右到左遍历数组。 20. `reverse()` - 反转数组元素的顺序。 21. `shift()` - 删除数组的第一个元素。 22. `slice()` - 截取数组元素,返回新数组。 23. `some()` - 检查数组中是否存在至少一个元素满足一个条件。 24. `sort()` - 排序数组元素。 25. `splice()` - 删除、插入或替换数组中的元素。 26. `toString()` -数组转换成字符串。 27. `unshift()` -数组的开头添加一个或多个元素。 28. `valueOf()` - 返回数组本身。 以上方法中,有些方法会改变数组,有些方法则会。需要注意使用时,避免产生错误。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值