首页 > 编程语言 > 详细

数组的方法及使用方法(包含ES5,ES6)

时间:2020-03-25 17:04:41      阅读:50      评论:0      收藏:0      [点我收藏+]

1、concat

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法:arrayObject.concat(array,......,array)

参数描述
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
const arr = [1,2,3]
const brr = [4,5]
const crr = [6,7]
const drr = arr.concat(brr)
const err = arr.concat(brr,crr)
console.log(drr)  //[1,2,3,4,5]
console.log(err)  //[1,2,3,4,5,6,7]

2、join

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

元素是通过指定的分隔符进行分隔的。

语法:arrayObject.join(separator)  

 

参数描述
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

const arr = [1,2,3] console.log(arr.join(‘,‘)) // 1,2,3

3、pop

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

语法:arrayObject.pop()

const arr = [1,2,3]
const brr =arr.pop() //3
console.log(arr) //[1,2]

4、push

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

语法:arrayObject.push(newelement1,newelement2,....,newelementX)

参数描述
newelement1 必需。要添加到数组的第一个元素。
newelement2 可选。要添加到数组的第二个元素。
newelementX 可选。可添加多个元素。
const arr = [1, 2, 3]
const brr = [4, 5]
const obj = {
        name: ‘shy‘,
        age: ‘22‘
    }
const a = arr.push(brr) 
const b = arr.push(obj)  
console.log(arr) //[1, 2, 3, [4,5]]
console.log(arr) //[1, 2, 3, { name:‘shy‘,age:‘22‘}]
console.log(arr) //[1, 2, 3, [4,5],{ name:‘shy‘,age:‘22‘}]

5、reverse

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

语法:arrayObject.reverse()

const arr = [1,2,‘a‘]
const brr = arr.reverse()
console.log(brr) //[‘a‘,2,1]

6、shift

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

语法:arrayObject.shift()

const arr = [1,2,3]
const brr = arr.shift()
console.log(arr) //2,3

7、slice

slice() 方法可从已有的数组中返回选定的元素

语法:arrayObject.slice(start,end)

 

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

可使用负值从数组的尾部选取元素如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素

const arr = [1,2,3]
const brr = arr.slice(0,1)
const crr = arr.slice(0)
const drr = arr.slice(0,-1)
console.log(brr)//[1]
console.log(crr) //[1,2,3]
console.log(drr) //[1,2]

8、sort

sort() 方法用于对数组的元素进行排序。

语法:arrayObject.sort(sortby)

参数描述
sortby 可选。规定排序顺序。必须是函数。
  function sortNumber(a, b) {
        return a - b
    }
    const arr = [6, 1564, 15, 234, 4, 345, 1, 5, 35, 48]
    const brr = [‘Aads‘, ‘Bd‘, ‘AD‘, ‘JF‘, ‘XFG‘]
    console.log(brr.sort()) //["AD", "Aads", "Bd", "JF", "XFG"]
    console.log(arr.sort())  //[1, 15, 1564, 234, 345, 35, 4, 48, 5, 6]
    console.log(arr.sort(sortNumber))//[1, 4, 5, 6, 15, 35, 48, 234, 345, 1564]

9、splice

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目

语法:arrayObject.splice(index,howmany,item1,.....,itemX)

 

参数描述
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
const arr = [1, 2, 3]
const btt = arr.splice(0,1) //删除第一项
const crr = arr.splice(0,1,"a") //替换
const drr = arr.splice(2, 0, [4, 5])//增加
console.log(arr) //[2, 3]
console.log(arr)  //["a", 2, 3]
console.log(arr)  //[1, 2,[4,5], 3]

10、toString

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

语法:arrayObject.toString()

const arr = [1, ‘a‘, ‘SAD‘]
console.log(arr.toString()) //1,a,SAD

11、unshift

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

语法:arrayObject.unshift(newelement1,newelement2,......,newelementX)

 

参数描述
newelement1 必需。向数组添加的第一个元素。
newelement2 可选。向数组添加的第二个元素。
newelementX 可选。可添加若干个元素。
const arr = [1, 2, 3]
const brr = [4, 5]
const obj = {
       name: ‘shy‘,
       age: ‘22‘
   }
const a = arr.unshift(brr)
const b = arr.unshift(obj)
console.log(arr) //[[4,5],1, 2, 3]
console.log(arr) //[{ name:‘shy‘,age:‘22‘},1, 2, 3 ]
console.log(arr) //[ { name:‘shy‘,age:‘22‘},[4,5],1, 2, 3]

ES5部分

12、Array.isArray()//判断是不是一个数组

 

语法:Array.isArray(arrayObject)

const arr = [1,‘a‘,{name:‘shy‘}]
console.log(Array.isArray(arr)) //true

13、Array.forEach() //遍历数组

语法:array1.forEach(callbackfn[, thisArg])

 

参数描述
array1 必选。一个数组对象。
callbackfn 必选。最多可以接受三个参数的函数。对于数组中的每个元素,forEach 都会调用 callbackfn 函数一次。
thisArg 可选。 callbackfn 函数中的 this 关键字可引用的对象。如果省略 thisArg,则 undefined 将用作 this 值。

 

回调函数的形参,依次为,value:遍历的数组内容;index:对应的数组索引,array:数组本身。

    const arr = [1, ‘a‘, { name: ‘shy‘ }]
    function myFunction(value, index, array) {
        //console.log(value) //1 a  {name: "shy"}
        //console.log(index)  // 0 1 2
        console.log(array)  // [1, ‘a‘, { name: ‘shy‘ }]  [1, ‘a‘, { name: ‘shy‘ }]  [1, ‘a‘, { name: ‘shy‘ }]
    }
    arr.forEach(myFunction)

14、Array.map() //遍历数组

语法:array1.map(callbackfn[, thisArg])

 

参数描述
array1 必选。一个数组对象。
callbackfn 必选。最多可以接受三个参数的函数。对于数组中的每个元素,forEach 都会调用 callbackfn 函数一次。
thisArg 可选。 callbackfn 函数中的 this 关键字可引用的对象。如果省略 thisArg,则 undefined 将用作 this 值。

 

回调函数的形参,依次为,value:遍历的数组内容;index:对应的数组索引,array:数组本身。

    const arr = [1, ‘a‘, { name: ‘shy‘ }]
    function myFunction(value, index, array) {
        //console.log(value) //1 a  {name: "shy"}
        //console.log(index)  // 0 1 2
        //console.log(array)  // [1, ‘a‘, { name: ‘shy‘ }]  [1, ‘a‘, { name: ‘shy‘ }]  [1, ‘a‘, { name: ‘shy‘ }]
    }
    arr.map(myFunction)

map与forEach的异同

相同点

  • 都是循环遍历数组中的每一项
  • forEach和map方法里每次执行匿名函数都支持3个参数,参数分别是item(当前每一项),index(索引值),arr(原数组)
  • 匿名函数中的this都是指向window
  • 只能遍历数组
  • 都不会改变原数组

区别

map方法

1.map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。

2.map方法不会对空数组进行检测侧,map方法不会改变原数组。

3.map支持return返回值,也不影响原数组,但是会返回一个新的数组。

4.若arr为空数组,则map方法返回的也是一个空数组。

forEach方法

1.forEach方法用来调用数组的每个元素,将元素传给回调函数。

2.forEach对于空数组是不会调用回调函数的,无论arr是不是空数组,forEach返回的都是undefined。这个方法只是将数组中的每一项作为callback的参数执行一次。

3.forEach不支持return,对原来的数组也没有影响。但是我们可以自己通过数组的索引来修改原来的数组。

 

15、Array.filter() //过滤

语法:arr.filter(callback(element[, index[, array]])[, thisArg])

 

数组的方法及使用方法(包含ES5,ES6)

原文:https://www.cnblogs.com/shy0113/p/12567242.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!