数组方法
push
在末端添加一个元素。unshift
在首端添加一个元素或多个元素。shift
删除数组首端的一个元素。pop
从末端删除一个元素。splice
删除数组某一位置的元素。concat
连接多个数组。join
将数组转换为字符串。
补充: split
将字符串分割为数组。
学习方法
- 学习使用语法
- 学习方法有什么作用和功能
- 记忆使用时需要传递什么参数
- 关注方法返回什么(返回值)(也就是方法运行完,额外提供给我们的数据)
作用于数组末端的方法:
1. pop
pop
从数组的末尾移出并返回移出数组的一个元素,若是空数组则返回undefined。改变原数组
语法: array.pop();
没有参数 , array.pop()和array.pop(3)的结果相同 , 都是删除最末尾的那个元素。
var fruits = ["Apple", "Orange", "Pear"];
alert( fruits.pop() ); // 移除 "Pear" 然后 alert 显示出来
alert( fruits ); // Apple, Orange
2. push
push
将一个或多个元素添加到数组的末尾,并返回数组的新长度。改变原数组
语法: array.push(elem1,elem2,elem3,…)
var fruits = ["Apple", "Orange"];
fruits.push("Pear","strawberry");
alert( fruits ); // Apple, Orange, Pear , strawberry
调用 fruits.push(...)
与 fruits[fruits.length] = ...
是一样的。
作用于数组首端的方法:
3. shift
shift
从数组的开头移出并返回移出数组的一个元素,若是空数组则返回undefined。改变原数组
语法: array.shift();
没有参数 , array.shift()和array.shift(3)的结果相同 , 都是删除最开始的那个元素。
var fruits = ["Apple", "Orange", "Pear"];
alert( fruits.shift() ); // 移除 Apple 然后 alert 显示出来
alert( fruits ); // Orange, Pear
4. unshift
unshift
将一个或多个元素添加到数组的开头,并返回数组的新长度。改变原数组
语法: array.unshift(elem1,elem2,elem3,…)
var fruits = ["Orange", "Pear"];
fruits.unshift('Apple','strawberry');
alert( fruits ); // Apple, strawberry, Orange, Pear
5. splice
splice
方法通过删除或替换现有元素或者添加新的元素来修改数组
返回值:以数组形式返回被修改的内容。
改变原数组。
语法:
array.splice(index,howmany,item1,…..,itemX)
参数 | 描述 |
---|---|
index | 必需。规定从何处添加/删除元素。 该参数是开始插入和(或)删除的数组元素的下标,必须是数字。 |
howmany | 可选。规定应该删除多少元素。必须是数字,但可以是 “0”。 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。 |
item1, …, itemX | 可选。要添加到数组的新元素 |
对数组进行增删改
增加:arr.splice(index, 0, item)
从索引index开始, howmany:0
把item或者更多的内容插入到索引index的前面
返回值:返回空数组
修改: arr.splice(index, x, item)
从索引index开始,删除x个元素, item替换删除的部分
把原有内容删除掉, 然后用新内容替换掉
返回值:修改掉原有内容的数组
删除:arr.splice(index,x)
从索引index开始,删除x个元素
(如果第二个参数省略, 则从index删除到末尾)
返回值:删除掉原有内容的数组
//增加
var array1 = [33,44,55,66,77,88];
array1.splice(2,0,'a','b')
console.log(array1);// [33, 44, "a", "b", 55, 66, 77, 88]
//修改
var array2 = [33,44,55,66,77,88];
array2.splice(1,2,'x','y')
console.log(array2);// [33, "x", "y", 66, 77, 88]
//删除
var array3 = [33,44,55,66,77,88];
//console.log(array3.splice(3,2))//[66, 77]
console.log(array3.splice(3));//[66, 77, 88]
6. concat
concat
连接两个或多个数组,返回连接后的新数组。不会改变原数组
语法: array1.concat(array2,array3,array4);
var nameArr1 = ["张三", "李四"];
var nameArr2 = ["王五", "赵六"];
var nameArr = nameArr1.concat(nameArr2);
console.log(nameArr); // ['张三','李四','王五','赵六']
console.log(nameArr1); // ['张三','李四']
console.log(nameArr2); // ['王五','赵六']
// 并未改变原数组,所以我要用一个新数组nameArr去接收合并后的数组,以便后续使用。
7. join
join
将数组转换为字符串,返回转换后的字符串。不会改变原来的数组
补充:
join()
方法可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符;如果不指定连接符,则默认使用,
作为连接符,此时和toString()的效果是一致的
。
语法:array.join(任何字符);
参数可不填,不填默认为
,
var arr = [1, 2, 3];
var arrStr = arr.join("-");
console.log(arrStr); // 1-2-3
console.log(arr); // [1,2,3]
// 并未改变原数组
8. 字符串方法 split
split
通过指定分隔符,将字符串分割为字符串数组,返回割后的数组。不会改变原来的数组
语法: str.split(分隔符,指定分割后的数组长度);
参数可不填,不填默认为
,
代码举例:
/**/
var email = "abc@163.com;cc@126.com;frg@qq.com";
var emailArr = email.split(";");
console.log(emailArr); // ["abc@163.com", "cc@126.com", "frg@qq.com"]
var emailArr2 = email.split(";", 2);
var emailArr = email.split(";"); // ["abc@163.com", "cc@126.com"]
9. 总结
改变原数组: push
pop
unshift
shift
splice
不改变原数组: concat
join
需要注意的是, split是字符串的方法, 数组调用会报错。