Array

Array

引用类型

和object一样,数组赋值给变量,引用的同一个数组,数值是同步的。

var a=[1,2,3,4,5];
var b=a;
b[0]=9;
console.log(a);//[9,2,3,4,5]

var a={id:1};
var b=a;
b.id=3;
console.log(a);//{id:3}

数组的每一项可以保存任意数值,允许不同数据类型。

var p=new Array(1,'123',{})
console.log(p);

new Array()创建数组 ,如果参数是一个数字代表数组大小。 不会填充初始值,默认undefined
[ ] 创建数组,参数就是数组的值,如果只包含一个数字x,代表数组里只有一个数字x

var p=new Array(20)
var f=[30]
console.log(p[2]);//undefined
console.log(p);//[<20 empty items>]
console.log(f);//[30] 

length数组长度

长度取决于最大赋值下标+1

var a=[]
console.log(a.length);//0
a[5]=3
console.log(a.length);//6   
console.log(a[4]);//undefined    未赋值的0-5都是undefined

修改长度会清除长度外的元素

var a=[1,2,3,4,5]
a.length=2
console.log(a);//[ 1, 2 ]

length 方便在末尾添加元素

var a=[1,2,3,4,5]
a[a.length]=6
a[a.length]=7
console.log(a);//[1,2,3,4,5,6,7]

检测/判断数组 107

var a=[]
if(a instanceof Array){
	console.log('yes');//yes
}

concat合并创建新数组

concat不会修改原数组,而是产生一个新数组

var a=[1,2]
var b=[3,4]
var c=[5,6]
var d=a.concat(b,c)
console.log(d);

slice() 方法

Array.slice(start?: number, end?: number): number[]

实现数组拷贝产生一个新数组 (数值不同步影响) 参数是个区间

var a=[0,1,2,3,4,5]

//无参数,取全部
console.log(a.slice());//[ 0, 1, 2, 3, 4, 5 ]

//一个参数,作为起点,默认取到终点
console.log(a.slice(1));//[ 1, 2, 3, 4, 5 ]
console.log(a.slice(-3));//[ 3, 4, 5 ]

//两个参数时,前闭后开
console.log(a.slice(2,5));//[2,3,4]
console.log(a.slice(-5,-2));//[1,2,3]

splice() 方法

在原数组上进行处理

删除

Array.splice(start: number, deleteCount?: number): number[] (+1 overload)

var a=[0,1,2,3,4,5]
var res=a.splice(2,2) //从2开始删除两项
console.log(res);//[2,3] 被删除的部分
console.log(a);//[0,1, 4, 5 ]

res=a.splice(2,0,9,9,9)//从2开始删除0项,加入9,9,9
console.log(res);//[]
console.log(a);//[0,1,9,9,9,4,5]

res=a.splice(2,3,9,9,9)//从2开始删除3项,加入9,9,9
console.log(res);
console.log(a);

添加(删除0项)

从start上开始添加 而不是从start+1开始

var a=[0,1,2,3,4,5]
var res=a.splice(2,0,9,9,9)//从2开始删除0项,加入9,9,9
console.log(res);//[]  被删除的部分
console.log(a);//[0,1,9,9,9,2,3,4,5]

替换 (删除数量=加入数量)

var a=[0,1,2,3,4,5]
res=a.splice(2,3,9,9,9)//从2开始删除3项,加入9,9,9
console.log(res);//[ 2, 3, 4 ] 被删除内容
console.log(a);//[ 0, 1, 9, 9, 9, 5 ]

迭代方法

foreach()

var a=[1,2,3,4,5];
a.forEach(function(item,index,arr){ //没有返回值
	console.log(item);
})
//输出1\n2\n3\n4\n5  遍历 

every()

var a=[0,1,2,3,4,5]
var res=a.every(function(item,index,arr){//可以省略index和arr
    return item>2
})
console.log(res);//false 并不是每一个都大于2

some()

var a=[0,1,2,3,4,5]
var res=a.some(function(item,index,arr){//可以省略index和arr
    return item>2
})
console.log(res);//true 存在一些大于2

filter()

var a=[1,2,3,4,5]
var res=a.filter(function(item,index,arr){
	return item>2
})
console.log(res);//[3,4,5]  过滤器 查找大于2 的部分

map()

var a=[1,2,3,4,5]
var res=a.map(function(item,index,arr){
    return item*2
})
console.log(res);//[ 2, 4, 6, 8, 10 ] 批量处理 每一项都乘2

正则匹配

test() 判断是否能匹配到

re=/cat/g;
var res=re.test('catastrophec');
console.log(res2);
posted @ 2021-11-15 21:16  CCCC_03  阅读(47)  评论(0)    收藏  举报