数组
==================字面量创建数组==================
1. var arr=[]; []里边可以放数字,字符串,true,false,null,undefined,数组([1,2,3]),对象{x:1,y:2}
var arr=[1,2.3,true,false,null,undefined,[1,2,3],{x:1,y:2}]
2. var x=1;
var arr=[x,x+3,x*5];
3 var arr=[ , , ]
console.log(arr.length); 输出的长度是2 只读到有效的为止
4 var arr=[ 1 , , 3];
console.log(arr); 输出结果是[1, , 3] 单独输出下标为1的是arr【1】结果是undefined
=================通过构造函数Array()创建数组=============
1 var a=new Array() 创建了个空数组
2 var a=new Array(5) 创建数组 5个空数组
3 var a=new Array(1,2,‘king’,false,2.3,null); 结果是【1,2,‘king’,false,2.3,null】
4 var arr=【1,2,3,4】;
arr【0】=‘king’; 替换下标是0的元素内容
5
var arr=[];
arr[0]='a';
arr[1]='b';
arr[-123]='c';
arr[2.3]='d';
arr[null]='e';
arr[false]='f';
arr[undefined]='g';
arr['name']='h';
arr[4]="pp";
console.log(arr); 输出全部的数组
console.log(arr[3]); //undefined
console.log(arr.length); 数组的长度为5 (4+1)
6
var arr1=new Array(10);
arr1=[];
arr1[100]='abc';
console.log(arr1.length); 长度是101 (100+1)
7 定义数组的长度是3,后边数组不加
var arr=[1,2,3,4,5,6,7,8];
arr.length=3;
console.log(arr);
8 Object.defineProperty(arr,'length',{writable:false }) 对象定义性质 arr的长度不可写
var arr=[1,2,3];
Object.defineProperty(arr,'length',{
writable:false
});
console.log(arr.length); 长度是3
arr.length=10;
console.log(arr.length); 长度还是3 定义了长度不可写 所以还是3
========================方法==========================
1 arr.shift()开头删除
2 arr.unshift()开头添加
3 arr.push()尾部添加
4 arr.pop()尾部删除
5 delete arr【0】删除下标为0的元素 位置保留
6 arr.join()将数组内元素组合成一个字符串
7 arr.reverse()将数组元素反过来输出
8 arr.sort()将数组元素按照ASCII码排序
9 arr.concat()组合数组 用来连接两个或者多个数组 该方法不会改变现有的数组。而仅仅会返回被连接数组的一个副本
10 arr.slice()截取
var arr=['a','b','c','d','e','f','g','h'];
res=arr.slice(0,3); 输出是a,b,c 截取的是从下下标为0开始到下标为3之间的元素 但是不包括下标是3的元素
res=arr.slice(2,-3);输出是c,d,e 截取的是从下标为2开始到从后数第三之间的元素,不包括下标为-3的元素
res=arr.slice(4);输出结果是e,f,g,h 截取的是下标为4的元素到元素结束 没有限制
11 arr.splice(index,howmany,item1,item2........itemx)
index:必需。整数,规定添加/删除项目的位置,使用负数从数组结尾数起
howmany:必需。要删除的项目数量,如果没有设置为0,则不会删除
item2........itemx:向数组增加新数组。
var arr=['a','b','c','d','e','f','g','h'];
aes=arr.splice(0,1) aes删除的元素是 a (也就是从下标0元素开始到下标1元素删除 不包括下标为1的元素) arr剩下的是b,c,d,e,f,g,h
aes=arr.splice(5) aes删除的元素是f,g,h(也就是从下标5元素开始到结束) arr剩下的是a,b,c,d,e
aes=arr.splice(0,2,‘!’,‘?’,‘%’) 从下标0元素开始删除2个 在向数组添加! ? % 结果是‘!’,‘?’,‘%’','c','d','e','f','g','h'
12 .map()
var arr=【1,2,3,4,5】;
res=arr.map(function(x){
return x*x;
})
console.log(res);结果是1,4,9,16,25 数组平方
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
var arr=['a!','b!','c','d!','e'];
res=arr.map(text); 调用函数
function text(x){
return x.replace(/!/g,'?').toUpperCase(); replace替换 将!替换成? toUpperCase转换成大写
}
console。log(res); ‘A?’ ,‘B?’ , ‘C’ ,‘D? ,‘E’
13 筛选过滤filter
console.log(res);
var arr=[1,3,4,5,5,623,4,345,4367,null,undefined,false,true,''];
res=arr.filter(function(x){
return x<=10;
});
res=arr.filter(function(x){
return x%2==0;
});
res=arr.filter(function(x){
return x!==undefined && x!=null;
});
console.log(res);
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
every所有的元素判断 some一些元素部分元素
var age=[12,34,55,66,28,19];
res=age.every(function(x){
return x>=18; 结果 false
});
res=age.some(function(x){
return x>=19; 结果 true
});
console.log(res);
14 求和 reduce
var arr=[1,2,3,4,5];
res=arr.reduce(function(a,b){
return a+b;
});
res=arr.reduce(function(a,b){
return a+b;
},10); ,10如果有逗号10的话最后结果在加10
console.log(res);
15 indexOf 找下标 如果有这个元素则找出下标是多少 如果没有这个元素那输出结果是-1
var arr=['a','b','c','d','e','a','bv','a'];
res=arr.indexOf(‘a’); 结果是0
res=arr.indexOf(‘b’); 结果是1
res=arr.indexOf(‘A’); 结果是-1
res=arr.indexOf(‘a’,2); 结果是5 这个找的是第二个a元素的下标
res=arr.lastindexOf(‘a’); 结果是7 这个找的是最后一个a元素的下标