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) //不会改变原数组








网友评论