合并数组的多种方法如下:
利用concat
function concat(arr1,arr2){
return arr1.concat(arr2);
}
利用slice+push.apply
function concat(arr1,arr2){
var newArr = arr1.sliice(0);
[].push.apply(newArr,arr2);
return newArr;
}
迭代拷贝
第一种
function concat(arr1,arr2){
var newArr = [];
for(var i = 0;i < arr1,length;i++){
newArr.push(arr1[i];
}
for(var j = 0;j < arr2.length;j++){
newArr.push(arr2[j];
}
return newArr;
}
第二种
function concat(arr1,arr2){
var newArr = [];
newArr.length = arr1.length +arr2.length;
for(var i = 0;i < newArr.length; i++){
if(i < arr1.length){
newArr[i] = arr[i];
}else{
newArr[i] = arr2[i - arr1.length];
}
}
return newArr;
}
es6…
function concat(arr1,arr2){
return [...arr1,...arr2];
}
利用join+split
function concat(arr1,arr2){
return (arr1.join("") + arr2.join("")).split("")
}
数组元素方法(还是举例吧- -)
1、push 在数组末尾添加一个或多个元素,并返回数组的长度, 可以添加任意类型的值作为数组的一个元素如下代码
arr.push({a: "A", b: "B"}); // [1,2,6,"aa",undefined,{a: "A", b: "B"}];
2、unshift 在最前面添加一个或多个元素,并返回数组的长度,可以添加任意类型的值作为数组的一个元素
arr.unshift('aa') // arr:['aa',9, 1, 2];返回值为4
3、pop 删除最后一个元素,如果数组为空则返回undefine。该方法会改变原始数组
语法:arr.pop()
示例代码1:
var arr = [1,2,3,"aa",5];
arr.pop(); // arr: [1, 2, 3, "aa"];
arr.pop(); // arr: [1, 2, 3];
示例代码2:
var arr = [];
arr.pop(); // 返回值为undefine
4、shift 删除数组第一个元素,如果数组为空则返回undefine。该方法会改变原始数组
var arr = [1,"aa",3,4,5];
arr.shift(); // arr: ["aa", 3, 4,5];
arr.shift(); // arr: [3, 4, 5];
示例代码2:
var arr = [];
arr.shift(); // 返回值为undefine
在js中如何使用好数组的各类方法
1、slice截取数组,得到截取的数组;不改变原始数组,得到新的数组
语法:slice(start,end)
1.start从0开始
2.包含start位置元素,不包含end位置元素
3.end可以省略,省略表示截取从start位置到数组结束
示例代码:
var arr = [1,2,3,4,5];
var a1 = arr.slice(1); // a1: [2,3,4,5] ;arr不会被改变
var a2 = arr.slice(1,3); // a2: [2,3] ;arr不会被改变
var a3 = arr.slice(3,4); // a3: [4] ;arr不会被改变
2、splice(index,number,item)该方法会改变原始数组,索引从0开始
语法:splice(index,number,item,...item)
1.index => 必需。整数,项目下标位置(包括这个下标)开始,使用负数可从数组结尾处规定位置。
2.number => 可省略。要删除的项目数量。如果设置为 0,则不会删除项目,如果省略,则会删除index位置及其后面的所有元素。
3.item, ..., itemX => 可选。向数组添加的新项目。
4.splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从数组中删除了元素,则返回的是含有被删除的元素的数组。
示例代码:
var arr = [1,2,3,4,5]; //以下注释结果分别对数组arr进行操作
arr.splice(1); // arr:[1]; 返回值为数组[2,3,4,5]
arr.splice(1, 2); // arr:[1, 4, 5]; 返回值为数组[2,3]
arr.splice(1, 0, 'A'); // arr:[1, "A",2,3, 4, 5]; 未删除元素,返回值为空数组[]
arr.splice(1, 2, 'A', 'B'); // arr:[1, "A", "B", 4, 5]; 返回值为数组:[2,3]
3、reverse 颠倒数组中元素的顺序,该方法会改变原来的数组,而不会创建新的数组
语法:arr.reverse()
示例代码:
var a = [1,2,3,4,5];
a.reverse(); //a:[5, 4, 3, 2, 1] 返回值为数组[5, 4, 3, 2, 1]
4、indexOf 数组元素索引,并返回元素索引,不存在返回-1,索引从0开始
语法:arr.indexOf(searchvalue,fromindex)
1.searchvalue => 必需。规定需检索的字符串值。
2.fromindex => 可选。元素开始检索的位置。如省略,则从数组的首个元素开始
3.indexOf()方法对大小写敏感!
示例代码:
var arr = ['a','b','c','d','e'];
arr.indexOf('a'); //返回值为0
arr.indexOf('f'); //返回值为-1
arr.indexOf('e',2); //返回值为4
5、Arrya.includes() 方法 在数组里包含xx项
let animals = ["1", "2", "3", "4"]
animals.includes("2") // true
animals.includes("6") // false
6、join 数组转字符串,与toString()方法类似
语法:arr.join(separator)
1.separator => 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
2.返回一个字符串,可以结合map方法返回一个新数组
3.该字符串是通过把数组arr中的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。
示例代码:
var a, b, c;
a = [0, 1, 2, 3, 4];
b = a.join("-"); // 0-1-2-3-4
c = a.toString(); // 0,1,2,3,4
!!!好了以上就是一些数组方法的使用,快过年了,又是一年。贺岁电影会是什么呢(能出没)!!!跑偏了…