//slice 从已有的数组中截取的元素 返回截取元素组成的数组 原数组不变
let arr = [1,2,3,'aa'] ;
arr.slice(1,3) // [2,3] 下标为1 开始取 截到下标为3的前一位
arr.slice(1,) // [2,3,'aa'] 下标为1 开始截 截到最后
arr.slice(1,-1) // [2,3] 下标为1 开始截 截到倒数第1的前一位
arr.slice(,-1) // [2,3] 语法错误
//splice 将原数组进行删除、替换、更改 返回删除元素所组成的数组
let arr = [1,2,3,'aa',4,5] ;
arr.splice(2) // [3,'aa',4,5] ; arr=[1,2] 下标为2开始删除,删除到最后一位
arr.splice(2,3) // [3,'aa',4] ; arr=[1,2,5] 下标为2开始删除,删除3个元素
arr.splice(-2,2) // [4,5] ; arr = [1,2,3,'aa'] 倒数第二个开始删除,删除两个
arr.splice(0,1,'嘿嘿') // \[1] ; arr = ['嘿嘿',2,3,'aa',4,5] 删除一项并插入一项
arr.splice(4,0,'嘿嘿') // [] ; arr = [1,2,3,'aa','嘿嘿',4,'5] 插入一项
// 插入是在被开始删除的前一项插入
// includes 判断数组中是否含有某条数据 返回布尔值 可以判断NaN
let arr = [1,{a:'哈哈哈'} , NaN , null ] ;
arr.includes(NaN) // true ;
arr.includes(null) // true ;
// indexOf 判断数组中是否含有某条数据 返回索引 不可判断NaN
arr.includes(NaN) // -1 ;
// includes和indexOf都可以有第二个参数 代表下标 负数代表倒数
//filter 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
let arr = [1,2,3,'aa',4,5] ;
let _this = {}
let filterArr = arr.filter( function( value,index,arr ){
cosole.log(this) // this === Window
return index > 3}
);
filterArr = [4,5] ;
let filterArr2 = arr.filter( function( value,index,arr ){
console.log(this) // this === {}
return index > 3},
_this) ;
filterArr2 = [4,5] ;
// 注意深浅拷贝
// toString 返回一个字符串,表示指定的数组及其元素
let arr = [1,2,3,45,'a']
arr.toString() // '1,2,3,45,a'
let arr2 = [1,2,3,45,null,'a']
arr2.toString() // '1,2,3,45,,a'
let arr3 = [1,2,3,45,undefined,'a']
arr3.toString() // '1,2,3,45,,a'
let arr4 = [1,2,3,45,undefined,'a','']
arr4.toString() // '1,2,3,45,,a,'
// join 把数组项与项之间用一个符号连接 返回值为连接后的字符串
let arr = ['w',2,'c',3,'haha'] ;
arr.join("") ; // 'w2c3haha'
arr.join() ; // 'w,2,c,3,haha' (默认为逗号)
let arr = ['w',2,'c',3,'haha',null,undefined,function(){}] ;
arr.join() // "w,2,c,3,haha,,,function(){}"
// concat 合并数据|| 数组 ; 返回值是合并后的数组,原数组不变;
let arr = [1,2,3] ;
arr.concat(4) ; // [1,2,3,4]
arr.concat([4]) ; // [1,2,3,4]
arr.concat([4],8,[9]) ; // [1,2,3,4,8,9]
arr.concat() ; // [1,2,3] ; 实现了浅拷贝
// some检测数组中的元素是否满足指定条件;每一项;满足则停止返回ture,否则反之
let arr = [1,2,3,4,11,'a'] ;
arr.some( (item,idx,arr)=>item === 1 ) //true
arr.some( (item,idx,arr)=>item === 7 ) //false
let arr2 = [{id:'wo'},{id:'love'},{id:'you'}] ;
arr2.some(item=>item.id==='love') //true
// every检测数组中的所有元素是否满足指定条件;如果有不满足的则返回false ,停止循环
let arr = [1,2,3,4,11,'a'] ;
arr.every( (item,idx,arr)=>item === 1 ) //false
arr.every( (item,idx,arr)=>item !== null ) //true
// es6 fill 重置数组内某部分的值
// arr.fill(value, start, end) arr本身会发生改变,返回值就是本身 实现了浅copy
// value 必填 其余两个参数选填
let arr = [1,2,{}, []];
arr.fill('zan'); // arr = ['zan', 'zan', 'zan', 'zan']
arr.fill('zan', 2); // arr = [1, 2, 'zan', 'zan']
arr.fill('zan', 2, 3); // arr = [1, 2, 'zan', []]
arr.fill('zan', -1); // arr = [1, 2, {}, 'zan']
文章随时更新…
转载请注明出处,有出错的地方还请各位大神指出,非常感谢。