JS数组方法
- 一、toString()
- 二、join()
- 三、pop 和 push
- 四、位移元素 shift() 和 unshift()
- 五、length 属性提供了向数组追加新元素的简易方法:
- 六、截取数组 splice() 和 slice()
- 七、concat()
一、toString()
toString()
把数组转换为数组值(逗号分隔)的字符串。
var array1 = ['你好','我是','小健'];
console.log(array1.toString());//你好,我是,小健
二、join()
join()
方法也可将所有数组元素结合为一个字符串。它的行为类似 toString()
,但是您还可以规定分隔符:
var array1 = ['你好','我是','小健'];
// 2.1 join()不填参数 则默认为以逗号分割
console.log(array1.join());//你好,我是,小健
// 2.2 join()填参数 则以参数分割
console.log(array1.join("*"));//你好*我是*小健
// 2.3 join("")填空值 则以无分割
console.log(array1.join(""));//你好我是小健
三、pop 和 push
在处理数组时,删除元素和添加新元素是很简单的。pop()
和 push()
指的是:
从数组弹出 pop()
(删除)项目,或向数组推入 push()
(新增)项目。
var array1 = ['你好','我是','小健'];
console.log(array1.pop());// 你好 删除数组的最后一个元素,返回被删除的数组元素
console.log(array1);//["你好", "我是"]
console.log(array1.push("刘德华"));//新增数组的最后一个元素,返回新增后数组的长度
console.log(array1);//["你好", "我是", "刘德华"]
四、位移元素 shift() 和 unshift()
位移元素 shift()
方法会删除首个数组元素
,并把所有其他元素“位移”到更低的索引。 位移与弹出等同,但处理首个元素而不是最后一个。
var array1 = ['你好','我是','刘德华'];
console.log(array1.shift());// 你好 shift() 方法返回被“位移出”的字符串:
console.log(array1);//["我是", "刘德华"]
unshift()
方法(在开头)向数组添加新元素
,并“反向位移”旧元素:
var array1 = ['我是','刘德华'];
console.log(array1.unshift("哈喽"));//3 unshift() 方法返回新数组的长度。
console.log(array1);//["哈喽", "我是", "刘德华"]
五、length 属性提供了向数组追加新元素的简易方法:
var array1 = ['哈喽','我是','刘德华'];
array1[array1.length] = '的偶像'
console.log(array1);// ["哈喽", "我是", "刘德华", "的偶像"]
六、截取数组 splice() 和 slice()
splice()
movie.splice
(0,2,‘除暴’,‘扫黑’)
第一个参数(0)定义新元素应该被添加(接入)的位置。
第二个参数(2)定义应该删除n个元素。
其余参数为新增的元素
返回值:被截取元素的数组
会改变原数组
var movie = ["战狼2","2012","肖申克的救赎","后天"]
console.log(movie.splice(0,2,'除暴','扫黑'))// ["战狼2","2012"] 返回被截取的数组
/*
第一个参数(0)定义新元素应该被添加(接入)的位置。
第二个参数(2)定义应该删除n个元素。
其余参数为新增的元素
返回值:被截取的数组
会改变原数组
*/
console.log(movie);//["除暴", "扫黑", "肖申克的救赎", "后天"] 改变了原数组
slice()
slice() 方法用于截取数组片段,并返回被截取元素的一个新数组
slice() 方法创建新数组。它不会从源数组中删除任何元素。
slice() 可接受两个参数,比如 (1, 3)。
该方法会参数当作数组下标选取元素,直到结束参数(不包括)为止。
注意:截取到结束下标的前一个元素,不包含结束下标元素
var fruits2 = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits2.slice(1,3);
console.log(citrus);//["Orange", "Lemon"] 返回被截取的新数组
console.log(fruits2 );//["Banana", "Orange", "Lemon", "Apple", "Mango"]; 原数组不变
splice() 和 slice()的异同点
* 相同点:
* 返回值都是截取到的数组
*
* 不同点 :
* splice() 会改变原数组
* splice(1,2,"Lemon", "Kiwi")
* splice() 第一个参数为数组截取的起始位置 第二给参数为应该截取多少个元素,其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
*
* slice()会返回一个新数组,而不会改变原数组
* slice(1,2)
* slice() 第一个参数为数组截取的起始位置 第二为截取的终点位置(不包含终点位置)
七、concat()
concat()
方法不会更改现有数组。它总是返回一个新数组。concat()
方法可以使用任意数量的数组参数:
concat()
方法通过合并(连接)现有数组来创建一个新数组:
var myGirls = ["Cecilie", "Lone"];
var myBoys = ["Emil", "Tobias", "Linus"];
var myChildren = myGirls.concat(myBoys); // 连接 myGirls 和 myBoys
//myGirls连接myBoys ,所以myBoys拼接在数组尾部
console.log(myChildren);//["Cecilie", "Lone", "Emil", "Tobias", "Linus"]
//concat() 方法不会更改现有数组。它总是返回一个新数组。
//concat() 方法可以使用任意数量的数组参数:
var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3); // 将arr1、arr2 与 arr3 连接在一起
console.log(myChildren);// ["Cecilie", "Lone", "Emil", "Tobias", "Linus", "Robin", "Morgan"]