美文网首页
js数组方法

js数组方法

作者: 秦声 | 来源:发表于2018-12-24 21:59 被阅读0次

push

该方法是给数组的尾部添加内容,数组里面可以存任意类型的值 , 该方法的参数可以有无限个。

演示:
var arr = [10,1]
console.log(arr.push(1,undefined,null,function(){})) // 4 返回值,返回的是参数的个数
console.log(arr)  //[10,1,1, undefined, null, ƒunction(){}]

unshift

该方法是给数组的头部添加内容,该方法的第一个参数将成为数组的第0个元素,如果有第二个参数,将成为第1元素,以此类推,参数也是无限的。

演示:
var arr = [19,5]
console.log(arr.unshift('秦司令','123')) // 2 返回个数
arr.unshift('str')
console.log(arr)  // ['str' , '秦司令' , '123' 19 , 5] 

pop

该方法是从数组的尾部的删除,pop()返回值是删除的值。

演示:
var arr = [19,5]
console.log(arr.pop())  // 5
console.log(arr.pop())  // 19
console.log(arr) // []  

shift

该方法是从数组的头部删除,shift()返回值是删除的值。

演示:
var arr = [19,5]
console.log(arr.shift())  // 19
console.log(arr.shift())  // 5
console.log(arr)  // []

concat

该方法是拼接数组,该方法不会改变数组,参数也是无限写。

演示:
var arr = [19,5]
var arr1 = [20,1]
var a = arr.concat(arr1,1)  // [19,5,20,1,1]
console.log(arr) // [19,5] 
console.log(a)  // [19,5,20,1,1]

toString

该方法将数组转换为字符串,不会改变原数组。

演示:
var arr = [19,5]
console.log(arr.toString()) // 19,5
console.log(arr) // [19,5]

join

该方法将跟toString方法一样,将数组转为字符串,只是将连接符号改变,join的参数是什么,转为字符串的符号就是什么,不会改变原数组。

演示:
var arr = [19,5]        
console.log(arr.join('')) // 195
console.log(arr.join(' ')) // 19 5
console.log(arr.join('&')) // 19&5
console.log(arr) // [19,5]

sort

该方法是一个数组排序的方法,参数是一个回调函数,回调函数接收两个参数,两个参数是排序用的。

演示:
var arr = [19,5]
arr.sort(function(a,b){
    return a - b;
    // a - b 从小到大
    // b - a 从大到小
})
console.log(arr)   // [5,19]

reverse

该方法是数组倒序。

演示:
var arr = [19,5,23,1,5,7]
arr.reverse()
console.log(arr)

// reverse倒序的原理
for(var i = arr.length-1; i > 0; i--){
    console.log(arr[i])
}

splice

该方法是数组删除和替换的方法,二个参数是从哪开始删除,删除几位,第三个参数是要被替换的内容。

演示:
var arr = ['秦','司','令']
arr.splice(1,2)
console.log(arr) // ["秦"]

arr.splice(1,0,'简书')
console.log(arr) // ["秦","简书"]

slice

该方法是截取数组,一位参数是把该内容删除掉,两位参数是从哪开始,到哪的前一位结束,截取出来,参数也可以写负数,该方法并不改变原数组。

演示:
var arr = ['秦','司','令']
console.log(arr.slice(1)) // ['司','令']
console.log(arr.slice(2,3)) // ['令']
console.log(arr.slice(-1)) // ['令']
console.log(arr) // ['秦','司','令']

fill

该方法跟splice差不多,只不过不同是是,该方法没有截取功能,只能替换,第一个参数是要替换的值,第二个参数是从哪开始,第三参数到哪结束的前一位,但是该方法改变原数组

演示:
var arr = ['秦','司','令']
arr.fill('a',1,2)
console.log(arr) // ["秦", "a", "令"]

forEach

该方法是数组的内置方法循环,参数是一个回调函数,里面有三个参数,第一个参数是 "value值" , 第二个参数是 "index下标" , 第三个参数是数组本身 , 该方法并不改变原数组,但是它的缺点是没有break、return、continue命令。
forEach也有第二个参数,可写可不写,是this的指向。

演示:
var arr = ['秦','司','令']
arr.forEach(function(v,i,arr){
    console.log(v)  // 秦 司 令 
    console.log(i)  // 0  1  2
    console.log(arr) // ['秦','司','令']           
})
console.log(arr)

var obj = {
    name:'秦司令',
    arr:[1,2,3],
    fn(){
        this.arr.forEach(function(){
            console.log(this.name)
        },this)  // 这如果不绑定this的话,上面的this.name会指向全局window
    }
}

map

该方法也是循环,跟map差不多但是,map的方法返回一个新的数组,不改变原数组。

演示:
var arr = ['秦','司','令']
console.log(arr.map(function(v,i,arr){
    console.log(v)  // 秦 司 令 
    console.log(i)  // 0  1  2
    console.log(arr) // ['秦','司','令']
    return arr[i]
}))

上面代码中,map里的return返回值就是map的返回值。

flat

该方法是拉平数组,如果是多层嵌套参数(Infinity)最大,该方法不改变原数组

演示:
var arr = ['秦','司','令',[1],[2,1]]
var arr1 = ['秦','司','令',[1],[2,[1]]]

console.log(arr.flat())  // ['秦','司','令',1,2]
console.log(arr1.flat(Infinity)) // 不管嵌套多少层,Infinity最大
console.log(arr)    //['秦','司','令',[1],[2]]

find

该方法是,用于找出符合条件的数组成员,它的参数是一个回调函数,回调函数第一个参数是value值,第二个参数是index,第三个参数数组本身,不会改变数组本身,返回值是就近返回只返回一个值

演示:
var arr = [1,2,3,4,5,6]
var a = arr.find((v,i,arr)=>{
    return v > 5
    return v > 1 // 2 只返回一个 2 就近返回
})      
console.log(a) // 6
console.log(arr) // [1,2,3,4,5,6]

findIndex

该方法跟上面的find非常相似,只是它返回值是数组的位置下标,不会改变原数组。

演示:
var arr = [1,2,3,4,5,6]
var a = arr.findIndex((v,i,arr)=>{
    return v > 5
    return v > 1 // 2 返回下标值 也是就近返回
})
console.log(a) //返回下标5 也就是内容6
console.log(arr)

filter

该方法跟find类似,参数也是一个回调函数,三个参数,只不过它的返回值是一个数组,不会改变原数组

演示:
var arr = [1,2,3,4,5,6]
var a = arr.filter((v,i,arr)=>{
    return v > 1  // 只要大于1的值,全部返回,返回值是一个数组
})
console.log(a) // [2, 3, 4, 5, 6]
console.log(arr) //不会改变原数组

希望这篇文章能对你有所帮助,如有问题,望大神指点。

相关文章

  • 数组(Array)<迭代器>

    一、Js数组迭代器方法 主要介绍js数组中的forEach,every,some,filter,map迭代器方法 ...

  • js基础了解

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

  • js 数组

    js 中数组的长度发生改变,数组就真的发生改变,快速清空数组就让数组长度为0js 数组的方法

  • js关于数组的方法汇总

    js关于数组的方法汇总

  • 封装常用数组操作函数

    1. 数组扁平化 方法一 : 递归迭代数组 方法二 : 通过js原生 falt方法展开数组 方法三 通过正则...

  • JS数组常用方法

    @[toc] JS数组方法 数组是 js 中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效...

  • JS如何判断一个数组是否为空、是否含有某个值

    一、js判断数组是否为空方法一: arr.length 二、js判断数组是否含有某个值方法一: arr.ind...

  • 数组进阶

    JS数组奇巧淫技 数组进阶方法~ 数组使用方法比较多。什么时候使用什么方法,用对方法,不用对很大的原因就是数组方法...

  • 数组常用方法

    数组常用方法 一、js数组常用方法: 1、join() Array.join() 方法将数组中所有元素都转换成字...

  • js 数组操作探究

    有空闲时间了, 深入的研究一下js 中的数组方法 js中的数组方法 首先是会改变原数组的方法: shift un...

网友评论

      本文标题:js数组方法

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