数组添加和删除
1.尾部添加和删除
push( ) 尾部添加,参数就是要添加的项;如果添加多个,用逗号隔开;原数组会改变,不需要赋值
pop( ) 尾部删除,不用写参数,返回的是删除的项
2.首部添加和删除
unshift( ) 头部添加,参数就是要添加的项;如果添加多个,用逗号隔开;原数组会改变,不需要赋值
shift( ) 头部删除,不用写参数,返回的是删除的项
3.splice( a,b,c,d...)方法
a:下标
b:个数 ( 为0,就是插入; 有数量,就是删除几个)
c,d... 替换的值
可以替换数组中,指定的值(从下标的开始) 返回的是替换掉的值
可以在指定位置插入新项( 插入是下标的前面插入)
可以删除( 删除是包括下标的)
例子: 可以替换数组中,指定的值(从下标的开始) 返回的是替换掉的值
var arr = ['a','b','c','d','e']; // 0 1 2 3 4
var arr1 = arr.splice(3,2,'x','y','z') console.log(arr); //['a', 'b', 'c', 'x', 'y', 'z'] console.log(arr1); //返回的是:替换掉的值['d', 'e']
例子: 可以在指定位置插入新项( 插入是下标的前面插入) 返回的是 [ ]
var arr = ['a','b','c','d','e']; // 0 1 2 3 4
var arr1 = arr.splice(1,0,'x','y','z') console.log(arr); //['a', 'x', 'y', 'z', 'b', 'c', 'd', 'e'] console.log(arr1); //返回的是:替换掉的值[ ]
例子: 可以删除( 删除是包括下标的) 返回的是删除的项
var arr = ['a','b','c','d','e']; // 0 1 2 3 4
var arr1 = arr.splice(1,1) console.log(arr); //['a', 'c', 'd', 'e'] console.log(arr1); //返回的是:替换掉的值[ 'b' ]
4.slice( a , b)方法 用于得到子串 (原数组不变,返回是新的数组) , 类似字符串的slice( )
a 下标 (包括a)
b 下标 ( 不包括b)
如果不提供第二个参数( b ),那么久截取到最后
5.数组的join( ) 方法 和 字符串的split( )方法
join( ) 原数组不改变
留空,默认为逗号分割,如同toString( ) 方法
例子:
var arr = [1,2,3,4,5,6]; var arr1 = arr.join(); var arr2 = arr.join('&'); console.log(arr); // [1, 2, 3, 4, 5, 6] console.log(arr1); // 1,2,3,4,5,6 console.log(arr2); // 1&2&3&4&5&6
split( ) 原数组不改变
不能留空
例子:
var str = '123456' var str1 = str.split() console.log(str1); // ['123456'] var str2 = str.split('') console.log(str2); // ['1', '2', '3', '4', '5', '6'] var str3 = str.split(' ') //有一个空格 console.log(str3); // ['123456'] console.log(str); // '123456'
6.concat( ) 方法 可以合并多个数组 , 不会改变原数组
var arr1 = [1,2,3]; var arr2 = [4,5]; var arr3 = [6,7,8]; var arr = arr1.concat(arr2); console.log(arr); // [1,2,3,4,5] console.log(arr1); // 原数组不改变 : [1,2,3] var arr4 = arr1.concat(arr2,arr3); console.log(arr4); // [1, 2, 3, 4, 5, 6, 7, 8]
7.reverse( ) 方法 把数组反一下顺序,直接改变原数组
var arr = [1,2,3,4,5] var arr1 = arr.reverse(); console.log(arr); // 会改变原数组: [5, 4, 3, 2, 1] console.log(arr1); // [5, 4, 3, 2, 1]
8. indexOf( ) 和 includes( ) 的区别
indexOf( ) 搜不到返回-1 ; 如果indexOf,有2个参数的话,是-1的,只能一个参数
includes( ) 搜不到 ,返回false