1.创建数组的几种方法
//a).通过new来创建数组,new可以省略
var arr=new Array();
var arr=Array();
//b). .通过new来创建数组,并且赋值
var arr=new Array(1,2,3);
//c).中括号直接创建
var arr=[]; //常用
//d).中括号直接创建 ,并且赋值
var arr=[1,2,3]
2. 数组中的方法:
//1.push() :给数组的末尾添加元素。格式: 数组.push(参数, 参数...);
var arr=['a','b','c'];
var temp=arr.push('d');
console.log(arr); //'a','b','c','d' ,原数组已改变
console.log(temp); //4, 返回的是添加元素后数组的长度
//2.pop() : 格式: 数组.pop() ,删除数组最后一个元素
var arr=['a','b','c'];
var temp=arr.pop();
console.log(arr); //'a','b' ,原数组已改变
console.log(temp); //c, 返回的是去掉的元素
//3.shift(): 格式: 数组.shift() 删除数组的第一个元素
var arr=['a','b','c'];
var temp=arr.shift();
console.log(arr); //'b','c' ,原数组已改变
console.log(temp); //a, 返回的是去掉的元素
//4.unshift(参数, 参数...):格式:数组.unshift() 给数组 首位添加元素
var arr=['a','b','c'];
var temp=arr.unshift('d','e');
console.log(arr); //'a','b','c','d','e' ,原数组已改变
console.log(temp); //5, 返回的是添加元素后数组的长度
// 5.concat(): 数组的合并 , 格式: 数组1.concat(数组2);
var arr1=['a','b'];
var arr2=['c','d'];
var temp=arr1.concat(arr2);
console.log(arr1); //'a','b' ,原数组arr1不变
console.log(arr2); //'c','d' ,原数组arr2不变
console.log(temp); //"a,b,c,d" 返回的是新数组
// 6.slice(): 数组的截取 , 格式: 数组.slice(start, end);
var arr=['a','b','c','d','e','f'];
var temp=arr.slice(2,4);
console.log(arr); // "a,b,c,d,e,f" ,原数组arr不变
console.log(temp); //"c,d" ,返回的是截取下来的新数组
// 7.splice():
// 7.1数组的删除功能:
var arr=['a','b','c','d','e','f'];
var temp=arr.splice(2,4);
console.log(arr); // "a,b" ,原数组arr已变
console.log(temp); //"c,d,e,f" ,返回的是删掉的数组
// 7.2 数组的插入功能:
var arr=['a','b','c','d','e','f'];
var temp=arr.splice(2,0,'g','h');
console.log(arr); // "a,b,g,h,c,d,e,f" ,原数组arr已变 ,无返回数组。
// 7.3 数组的替换功能:
var arr=['a','b','c','d','e','f'];
var temp=arr.splice(2,1,'g');
console.log(arr); // "a,b,g,d,e,f" ,原数组arr已变 。
console.log(temp); // "c ,返回的是替换掉的元素。
// 8. reverse() 数组的翻转:
var arr=['a','b','c','d','e','f'];
var temp=arr.reverse();
console.log(arr); // "f,e,d,c,b,a" ,原数组arr已变 。
console.log(temp); // "f,e,d,c,b,a" ,返回的是翻转后的数组。
// 9. join() 表示数组转换成字符串:
var arr=['a','b','c','d','e','f'];
var temp=arr.join('-');
console.log(arr); // "a,b,c,d,e,f" ,原数组arr不变 。
console.log(temp); // "a-b-c-d-e-f" ,这里以‘-’进行分割,返回的是分割 后的数组。
// 10. split() 字符串转换成数组:
var str='abc-def-ghi-jk';
var temp=str.split('-');
console.log(str); // "abc-def-ghi-jk" ,原字符串不变 。
console.log(temp); // "abc,def,ghi,jk" ,这里以‘-’进行分割,返回的是分割 后的数组。
// 11. sort() 数组的翻转:
//字符进行排序
var arr1=['f','e','d','c','b','a'];
var temp1=arr.sort();
console.log(arr1); // "a,b,c,d,e,f" ,原数组arr已变 。
console.log(temp1); // "a,b,c,d,e,f" ,返回的是从小到大排序的数组。
//数字进行排序
var arr2=[5,4,3,2,1,0];
var temp2=arr2.sort();
console.log(arr2); // "0,1,2,3,4,5" ,原数组arr已变 。
console.log(temp2); // "0,1,2,3,4,5" ,返回的是从小到大排序的数组。缺点:只能排序一位数的数组
var arr3=[22,34,1,4,0,25]
function compareArr(val1,val2){
if(val1>val2){
return 1;
}else if(val1<val2){
return -1;
}else{
return 0;
}
}
console.log(arr3.sort(compareArr)); //‘0,1,4,22,25,34’ ,结合compareArr()方法可以排序任意位数的数组
// 12.indexOf(): 格式: 数组.indexOf(要查找的元素, 开始查找的下标);
var arr=['a','e','c','d','e','f'];
console.log(arr.indexOf('e',2)); //4 返回所需要查找的元素的下标
console.log(arr.indexOf('c')); //2 返回所需要查找的元素的下标
// 13.forEach():遍历数组 格式: 数组.forEach(function(item, index, array){});
var arr=['a','e','c','d','e','f'];
arr.forEach(function(item, index, array){
console.log(item); //a/b/c/d/e/f 返回每一个元素
console.log(index); //返回每一个元素对应的下标
console.log(array); //返回整个数组
})
// 14.map():遍历数组 格式: 数组.map(function(value,key){});
var arr=[1,2,3,4,56];
var arr2= arr.map(function(value,key){
console.log(value); //a/b/c/d/e/f 返回每一个元素
console.log(key); //返回每一个元素对应的下标
return value*2 //可以修改每个元素的值,返回一个新数组
})
console.log(arr); //1,2,3,4,56
console.log(arr2); //2,4,6,8,112