美文网首页
js 数组常用操作整理

js 数组常用操作整理

作者: Giraffe_00 | 来源:发表于2020-12-17 18:01 被阅读0次
  • 数组的新增

push() 方法:可向数组的末尾添加一个或多个元素,并返回新的长度,使用该方法会改变原数组。

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

unshift() 方法:可向数组的开头添加一个或更多元素,并返回新的长度,使用该方法会改变原数组。

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

concat()方法:用于连接两个或多个数组。该方法不会改变现有的数组。

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

splice() 方法:向数组插入和替换改变原数组。

let arr1 = [1, 2, 3, 4, 5]
let arr2 = arr1.splice(2,0,"a","b")
console.log(arr1);//[1, 2, "a", "b", 3, 4, 5]
console.log(arr2);//[]
let arr1 = [1, 2, 3, 4, 5]
let arr2 = arr1.splice(2,2,"a","b")
console.log(arr1);//[1, 2, "a", "b", 5]
console.log(arr2);//[3, 4]

  • 数组的删除

pop()方法:删除数组的最后一个元素并返回被删除的元素,使用该方法会改变原数组。

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

shift() 方法:把数组的第一个元素从其中删除,并返回第一个元素的值,使用该方法会改变原数组。

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

slice() 方法:从已有的数组中返回选定的元素。这里要注意:使用 slice() 会返回一个新的数组而不是修改原数组。
1、不传参

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

2、传入一个参数且为正值:将原数组从下标为传递的参数值开始一直截取到最后。

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

3、传入一个参数且为负值:此时将截取原数组末尾的元素,传递的参数为多少,就在后面截取多少个。

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

4、传入两个参数:第一个参数为数组切割的起始值,第二个参数为数组切割的结束值。注:包头不包尾。

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

splice() 方法:向/从数组中添加/删除项目,然后返回被删除的项目。
1、不传参:自身返回一个空数组,原数组不改变。官方规定第一个参数和第二个参数为必传项。

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

2、传一个参数:第一个参数后面的元素全部删除。该方法会改变原数组。

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

3、传入一个参数且为负值:此时将删除原数组末尾的元素,传递的参数为多少,就在后面删除多少个。

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

4、传入两个参数:第一个参数为数组删除的起始值,第二个参数为数组删除的位数。

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

splice():进行的操作会影响到原数组
slice():进行的操作不会影响到原数组


  • 数组的循环

filter() 方法:对数组的每一项允许给定函数,返回该函数会返回true的项组成数组,不会改变原数组。
写法一

let arr1 = [1, 2, 3, 4, 5]
let arr2 = arr1.filter((item) => item > 3)
console.log(arr1)// [1, 2, 3, 4, 5]
console.log(arr2)// [4, 5]

写法二

let arr1 = [1, 2, 3, 4, 5]
let arr2 = arr1.filter((item) =>{
    return  item > 3
})
console.log(arr1)// [1, 2, 3, 4, 5]
console.log(arr2)// [4, 5]

map() 方法:对数组的每一项执行给定函数,返回每次函数调用的结果组成的数组,不会改变原数组。
注:map()不会对空数组进行检测
写法一

let arr1 = [1, 2, 3, 4, 5]
let arr2 = arr1.map((item) => item > 3)
console.log(arr1)// [1, 2, 3, 4, 5]
console.log(arr2)// [false, false, false, true, true]
let arr1 = [{
    a: 1,
    b: 2
}, {
    a: 3,
    b: 4
}, {
    a: 5,
    b: 6
}]
let arr2 = arr1.map((item) => item['a'])
console.log(arr1)//[{"a":1,"b":2},{"a":3,"b":4},{"a":5,"b":6}]
console.log(arr2)//[1, 3, 5]

写法二

let arr1 = [1, 2, 3, 4, 5]
let arr2 = arr1.map((item) =>{
    return  item > 3
})
console.log(arr1)// [1, 2, 3, 4, 5]
console.log(arr2)//  [false, false, false, true, true]
let arr1 = [{
    a: 1,
    b: 2
}, {
    a: 3,
    b: 4
}, {
    a: 5,
    b: 6
}]
let arr2 = arr1.map((item) =>{
    return  item['a']
})
console.log(arr1)//[{"a":1,"b":2},{"a":3,"b":4},{"a":5,"b":6}]
console.log(arr2)//[1, 3, 5]

forEach() 方法:对数组的每一项运行给定函数,没有返回新数组,没有返回值。
注:forEach() 无法在所有元素都传递给调用的函数之前终止遍历,forEach()breakreturn无效,使用for替换forEach()

let arr = [1, 2, 3, 4]
arr.forEach((item) => {
    console.log(item) 
})
//1
//2
//3
//5

普通for循环(性能较好)

let arr = [1, 2, 3, 4]
for (let i = 0; i < arr.length; i++) {
    console.log(arr[i])
}
//1
//2
//3
//5

关于for循环的终止循环:
break:终止循环执行循环体下面的代码
return:终止循环并且退出循环所在的方法
continue:终止当前循环,进行下一次循环

for...in以任意顺序遍历一个对象的可枚举属性。for...in循环出的是key,遍历数组元素的顺序可能是随机的。

let arr = [1,2,3,4,5]
for (let index in arr){
    console.log(index)
}
//0
//1
//2
//3
//4

for...of循环,for...of循环出的是value。支持遍历字符串。

let arr = [1,2,3,4,5]
for (let item of arr){
    console.log(item)
}
//1
//2
//3
//4
//5
let str = "hello"
for (let item of str){
    console.log(item)
}
//h
//e
//l
//l
//o

  • 数组的排序

reverse()方法:用于颠倒数组中元素的顺序。

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

sort() 方法:用于对数组的元素进行排序,并返回数组。

//实现升序
let arr = [5, 1, 3, 4, 2];
arr.sort(function(a, b) {
    return a - b;
})
console.log(arr);//[1, 2, 3, 4, 5]
//实现降序
let arr2 = [5, 1, 3, 4, 2];
arr2.sort(function(a, b) {
    return b - a;
})
console.log(arr2);//[5, 4, 3, 2, 1]

  • 检测数组
let arr1 = [1, 2, 3, 4, 5];
let arr2 = "123456"
console.log(arr1 instanceof Array) // true
console.log(arr2 instanceof Array) // false
console.log(Array.isArray(arr1)) // true
console.log(Array.isArray(arr2)) // false

相关文章

  • js 数组常用操作整理

    数组的新增 push() 方法:可向数组的末尾添加一个或多个元素,并返回新的长度,使用该方法会改变原数组。 uns...

  • js基础了解

    js数组常用遍历方法使用: js数组常用操作方法使用: 基本逻辑运算: 基本字符串操作方法:

  • JS数组常用操作

    push() push方法用于向数组的末尾添加一个或多个元素,并返回新的长度 pop() pop方法用于删除并返回...

  • JS数组常用操作

    JS数组常用操作 添加一个元素到数组的最后位置: ``` 方式一:numbers[numbers.length]=...

  • JS数组常用操作

    当我们想要做出一些JS的效果,很多都是要对数组进行一些操作,特别是学到JS后期的时候,发现很多之前JS数组基本的操...

  • JS数组操作(看这一篇就够了)

    js中对数组操作整理了以下方法 join()   数组转换成字符串 push() 和 unshift()   数组...

  • 》》》PHP初入---(四)

    JS插件ZTree:处理无限极菜单 操作数组常用函数: range($min,$max,步长):创建数组,元素是$...

  • js数组常用方法整理

    js数组常用方法整理 标签:js 数组 前言:这篇文章主要是一些归纳总结,大部分参考的是MDN的程序,也加了一些自...

  • JavaScript数组常用方法整理

    js数组常用方法整理 Array.push()  向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。...

  • JS数组常用操作合并

    concat apply 去重

网友评论

      本文标题:js 数组常用操作整理

      本文链接:https://www.haomeiwen.com/subject/wduluktx.html