JavaScript之数组常用方法(二)
数组元素操作(二)
数组在程序中是一个非常重要的角色,无处不在,可以说有程序必定有数组存在。
1、concat[arr1,arr2,arr3]
用于合并两个或多个数组,此方法不会改变原有数组,返回一个新数组
var arr1 = ["chen"];
var arr2 = ["gen"];
var arr3 = ["cun"];
console.log(arr1.concat(arr2,arr3));
output: ["chen", "gen", "cun"]
2、join(separator)
将一个数组的所有元素连接成一个字符串,并返回这个字符串
-sparator决定以什么符号对数组里面进行拼接
var arr = ["chen", "gen", "cun"];
console.log(arr.join(""));
console.log(arr.join("-"))
output: chengencun
output: chen-gen-cun
3、reverse
将数组中的所有元素位置颠倒,并返回该数组,
var arr = ["a","b","c"];
console.log(arr.reverse());
output: ["c", "b", "a"]
4、indexOf(searchValue[,formIndex])
返回数组中指定元素第一次出现的索引,如果不存在,返回-1;
-searchValue 要查找的值
-formIndex 查找的起始位置,如果不填,默认为0
如果说大于或者等于length,则返回-1
如果说是一个负数(如果这个负数的绝对值超过length,则fromIndex为0),逆向确认查找
var arr = ["a", "b", "c", "a"];
console.log(arr.indexOf("a"));
console.log(arr.indexOf("a", 1));
output: 0
output: 3
5、lastIndexOf(searchValue[,formIndex])
返回在数组中指定元素最后一次出现的索引,如果不存在,则返回-1
-fromIndex 搜索的起始位置,默认为length
如果大于或者等于length,则为length
如果是一个负数,则逆向找到对应的起始位置
var arr = ["a", "b", "c", "a"];
console.log(arr.lastIndexOf("a"));
console.log(arr.lastIndexOf("a", 2));
output: 3
output: 0
6、slice(begin[,end])
截取从begin开始,到end为止的数据,并作为一个新数组返回,并不会改变原有数组,begin是包含在内的,end是不包含在内的
-begin 截取起始位置,如果值超过了length,就会返回一个空数组
如果是一个负数(负数的绝对值超过了length,就会默认从0开始截取),那就开始截取
-end 控制截取的结束位置。如果不给,默认到数组结尾。
如果小于(从位置上来说)begin,会得到一个空字符串
如果是负数,负数的绝对值超过了length那么就有得到一个空字符串
如果超过了length,默认也只到数组的结尾位置
var arr = ["a", "b", "c", "d", "e"];
console.log(arr.slice(1,4));
// 拷贝 数组
var arr2 = arr.slice();
console.log(arr2);
output: ["b", "c", "d"]
output: ["a", "b", "c", "d", "e"]
深拷贝:数组拷贝过来和原数组完全没有任何关系
浅拷贝:数据拷贝过来后,里面的第一层的基本类型是没有关联了,但是里边的复杂类型,依旧是有关联