Array.toString()
将数组转换成字符串,以","分隔。
返回:新字符,不修改源数组
var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var str = arr.toString();
console.log(str); //5,8,true,zhangsan,123,lisi
console.log(arr); //[5, 8, true, "zhangsan", 123, "lisi"]
2. Array.join()
将数组的每一个元素都转换成字符串,然后连接这些字符串,连接符默认"," 也可以更改为其他,
不修改源数组
var arr = [5, 8, true];
var str1 = arr.join()
console.log(str1); //"5,8,true"
console.log(arr); //[5, 8, true]
var str = arr.join(""); //连接符为空
console.log(str); //"58true"
var str3 = arr.join("-"); //连接符为-
console.log(str3); //"5-8-true"
3. Array.concat()
依次将内容添加到数组的尾部,并返回新数组,不修改源数组
var arr = [5, 8, true];
var arr2 = arr.concat('ok', 123);
console.log(arr); // [5, 8, true]
console.log(arr2); //[5, 8, true,'ok', 123]
4. Array.slice()
截取并返回数组的一部分,从start到end(不包括end)。如果是负数则从后往前数(截取顺序不变)
start:
开始数组的小标,-1指最后一个元素,-2值倒数第二个元素
end:
结束处的数组小标(不包括end本身);如果是负数,则从尾部算起(不包括本身)
返回值:
新数组,不修改原数组
var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr3 = arr.slice(1); //从arr[1]]到结尾
console.log(arr3); //[8, true,'zhangsan', 123, 'lisi'];
console.log(arr); //[5, 8, true,'zhangsan', 123, 'lisi'];
----------------------
var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr3 = arr.slice(1,4); //从arr[1]- arr[4](不包括arr[4])
console.log(arr3); //[8, true,'zhangsan']
console.log(arr); //[5, 8, true,'zhangsan', 123, 'lisi'];
----------------------
var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr2 = arr.slice(-3,4); //从倒数第三个 - arr[4](不包括arr[4])
console.log(arr2); //['zhangsan']
----------------------
var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr2 = arr.slice(1,-1); //从1到--倒数第一个(不包括本身)
console.log(arr2); //[8, true,'zhangsan', 123];
----------------------
var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr2 = arr.slice(-2,-1); //倒数第2个 --倒数第一个(不包括本身)
console.log(arr2); //[123];
5. Array.splice()
修改源数组
语法:
array.splice(start[, deleteCount[, item1[, item2[, …]]]])
返回值:
被删除元素数组
a. 传递一个参数的时候:
表示从这个参数的位置开始一直截取到最后
var arr = [2,4,6,7,8,9];
//[2,4,6,7,8,9]
console.log(arr);
//参数为2表示从索引下标为2的位置开始一直截取到数组的最后;
var n = arr.splice(2);
//[6,7,8,9] -splice()返回的是截取到的数组
console.log(n);
//[2,4] -原来的数组结构发生改变,为splice截取之后剩下的数组
console.log(arr);
b. 传递两个参数时:
传递两个参数,第一个参数表示开始的位置,第二个参数表示要截取的个数;
如果第二个参数为0,则表示不截取,返回的空数组,原来的数组不变
var arr = [2,4,6,7,8,9];
console.log(arr);//[2,4,6,7,8,9]
var n = arr.splice(2,3); //表示从下标位置为2开始截取3个数
console.log(n); //[6, 7, 8]
console.log(arr);//[2,4,9]
-----------
var arr = [2,4,6,7,8,9];
var n = arr.splice(2,0); //表示从下标位置为2开始截取3个数
console.log(n); //返回空数组[]
console.log(arr); //源数组不变[2,4,6,7,8,9]
c. 传递三个数组的时候
1. 当第二个参数不为0的时候
var arr = [2,4,6,7,8,9];
//[2,4,6,7,8,9]
console.log(arr);
//表示从下标为2的位置开始,删除3个项,在下标为2的位置添加一个数字为5的新项
var n = arr.splice(2,3,5);
console.log(n); //[ 6, 7, 8 ]
console.log(arr); //[2, 4, 5, 9]
2. 当第一个参数为0的时候
var arr = [2,4,6,7,8,9];
//[2,4,6,7,8,9]
console.log(arr);
//表示在下标为2的位置,截取0个数组,在下标为2的位置添加一个新项
var n = arr.splice(2,0,5);
//不截取,返回空数组[]
console.log(n);
//[2, 4, 5, 6, 7, 8, 9]
//6这个位置无5的情况下会被删除,因为插入5是在他之前
console.log(arr);