JS 数组
1:数据的声明,有三种方式
- var array=[] 推荐方式
- var array=new Array()
- var array=[1,2,3,4,5]
- Array.isArray(array) 检查是否是数组
2:数组的读写
var array=[];
for(var i=0,i<10,i++){
array[i]=i;
}
3:由字符串生成数组
var str="aaa,bbb,ccc,dddd";
var arr=str.split(',');
4:对数组的整体性操作
- 浅复制,是对原数组的引用,原数组变内容变换,新数组也会跟着变化
var array =[1,2,3,4,5];
var newArray=array;
array[1]=10;
print(newArray[1]) 10
- 深复制,将原数组每一个元素都重新赋值一遍
function copy(old,newA){
for (var i=0;i<old.length;i++){
newA[i]=old[i];
}
}
5:数组的方法
- 1:indexOf 返回该该元素所在数组的位置
var array=[1,2,3,4,5]
array.indexOf(1)
- 2:join 将数组转换为字符串,类同toString();
array.join(',') //1,2,3,4,5
- 3:concat 合并多个数组创建一个新数组
var array=[11,22,33],array1=[3,4,5];
var newArray= array.concat(array1);
- 4:splice() 从现有数组里面截取新的数组 第一个为起始索引,第二个为截取的长度
var array=[1,2,3,4,5]
var newArray=array.splice(1,3); result:2,3,4
6:数组元素的添加删除
- push 将一个元素添加到数组末尾
var array=[1,2,3,4];
array.push(5);
print(array) 1,2,3,4,5
- unshift 将一个元素添加到数组的头部
var array=[1,2,3,4,5];
array.unshift(5);
print(array) 5,1,2,3,4
array.unshift(7,6);
print(array) 7,6,5,1,2,3,4
- pop删除数组末尾的元素
var array=[1,2,3,4,5];
array.pop();
print(array) 1,2,3,4
- shift 删除数组的第一个元素
var array=[1,2,3,4,5];
array.shift();
print(array) 2,3,4,5
- splice 从数组中添加和删除元素
var array=[1,2,3,4,5];
- splice 添加元素 有三个参数
1: 起始索引,你想添加的位置
2: 需要删除元素的个数 此处为0
3: 添加进数组的元素
var array=[1,2,3,4,5];
array.splice(2,0,7,8);
print(array) 1,2,7,8,3,4,5
- splice 删除元素
1:起始位置
2:要删除元素的个数
var array=[1,2,3,4,5];
array.splice(3,2);
print(array); 1,2,5;
- reverse 倒序排列
var array=[1,2,3,4,5];
array.reverse(); 5,4,3,2,1
- sort 默认字符串 按照英文字母排序,可以传入一个比较函数
var array=["aa","cc","bbb"];
array.sort(); aa,bbb,cc;
array.sort(function(num1,num2){
return num1-num2
});
7:数组的迭代器方法
- 1 :不生成新数组的迭代器
forEach() 遍历数组元素
var array=[12,3,4,5];
array.forEach(function(){
});
every() 遍历数组,对于所有元素都返回true的情况才会返回true,否则返回false;
var array=[1,0,-1];
array.every(function(item){
return item;
})
false;
some() 遍历数组,对于所有元素有一个返回true,那么结果就返回true;
var array=[1,2,3,4,0];
array.some(function(item){
return item;
})
true;
reduce() 将每一个元素进行累加,最后返回累加的值(从左往右累加) reduceRight() 从右往左累加
var array=[1,2,3,4,5];
var result= array.reduce(function(item,next){
return item+next;
})
print(result) 15;
- 2:生成新数组的迭代器
map() 类同于forEach() ,返回的新数组是由每一个元素处理得来
var array=[1,2,3,4,5];
var result= array.map(function(item){
return item*10;
})
print(result) 10,20,30,40,50
filter() 类同于every(),也是返回一个布尔元素,如果为true,返回该元素
var array=[1,2,3,4,5];
var result= array.filter(function(item){
return item>3;
})
print(result) [4,5];
8:二维数组和多维数组
二维数组和多维数组
var array=[];
array[1]=[1,2,3];
print(array[1][1])'
9:对象数组
var array=[{id:1,name:11},{id:2,name:222}];