数组
数组
定义:Array 一组数据的有效列表
一:创建数组
1.字面量方式 let art1=[]; 2.构造函数方式 let art2=new Array[];
二:创建并初始化
let arr3=[1,'hello',654561,flase];
三:下标(索引):数组中每个元素的位置
-
查看
console.log(arr3[1]);
-
增加
arr3[3]='world'; console.log(arr3[3]);
-
修改
arr3[1]='world'; console.log(arr3[1]);
-
删除(只删除元素,不删除位置)
delete arr3[2]; console.log(arr3);
四:多维数组
let arr4=['a','b',['hello']];
console.log(arr4[2][0]);//hello
五:数组的扩展 ES6
1,扩展运算符...
-
复制数组
let arr1=['a','b','c','d']; let arr2=[...arr1]; console.log(arr2);//['a','b','c','d']
-
合并数组
let arr1=['a','b','c','d']; let arr2=['1','2','3']; let arr3=[...arr1,...arr2] console.log(arr3);//['a','b','c','d''1','2','3']
-
将字符串转换成数组
let str='hello'; let arr=[...str]; console.log(arr);//['h''e''l''l''o']
2,数组的解构 ES6
原理:让赋值符号左右两边保持结构,按对应位置,将数值赋值给变量
-
获取数组中的每一个值
let arr=['hello','123','flase'] [a,b,c]=arr; console.log(b);//123
-
交换两个变量的值
let a=1; let b=2; [a,b]=[b,a]; console.log(a,b);//2 1
-
解构的默认值
let [a=1,b=2]=[]; console.log(a,b);//1 2
数组的属性和方法
一)属性
length
let arr=['a','b','c','d']
console.log(arr.length);//4
arr.length=10;长度可以更改
arr.length=0;清空数组
console.log(arr[arr.length-1]);//d 获取最后一个元素
二)方法
-
push(); 向数组的末尾添加一个或者多个元素,并返回删除的元素
arr.push('a','b');
-
pop();删除数组中的最后一个元素,并返回删除的元素
arr.pop(); console.log(arr.pop());//返回删除的元素
-
unShift();向数组的第一元素个前面添加元素,并返回输入的元素
console.log(arr.unshift('1','2'));//返回输入的元素
-
shift();删除并返回第一个元素
console.log(arr);//返回第一个元素
-
splice();从数组中添加或者删除元素
let arr=['a','b','c','d'] arr.splice(1,0,'321'); 第一个位置:下标 第二个位置:删除的个数 第三个位置往后:添加或者删除的数据
- indexOf(); lastIndexOf();通过元素找到在数组中的位置
-
slice(); 截取某一段元素(不包含结束)
console.log(arr.slice(1,3));//['b','c']
-
concat(); 合并
let arr2=[1,2,3] console.log(arr1.concat(arr2));
-
join(); 将数组的每一个元素通过指定的符号拼接成字符串
console.log(arr.join('+'));//a+b+c+d console.log(arr.join(' '));//abcd
-
排序
reverse
let arr=['a','b','c','d'] console.log(arr.reverse());//['d','c','b','a']
sort
lat arr=[3,5,18,7,0] arr.sort(function(a.b){ return a-b;} ); console.log(arr);//[0,3,5,7,18] 若排序的时候不调用函数,会隐性将数字转换为字符串进行比较,由于字符串的比较大小是一个一个比的,导致结果不准确。
集合
Set ES6新增
特点:类似于数组,成员都是唯一的,没有重复值
一 创建Set
let s=new Set(['a','b','c']);
console.log(s);// Set{'a','b','c'}
二 Set的属性和方法
属性)
size 长度
cosole.log(s.size);//3
方法)
1 add 添加(向末尾)
s.add('e'); //向集合的末尾添加一个元素'e'
s.add('e').add('f').add('g');//向集合的末尾添加多个
2 delete(); 删除(不会保留原有位置)
s.delete('f');
3 has() 查看是否存在某个数据
s.has('f');
4 clear(); 清空所有数据
s.clear();
三 与数组的相关操作
1) Set转换为数组
let s=new Set(['a','b','c']);
let arr=[...s];
console.log(arr);
2) 数组去重 判断时会是严格判断
lat arr=[1,2,3,1,2,5];
let s=new Set(arr);
arr=[...s];
console.log(arr);//[1,2,3,5]
映射
Map 类似于JSON式对象 特点 :键名可以是任意数据类型(ISON式对象的键名只能是字符串)
创建Map
let m = new Map();
let m = new Map([['name','马冬梅']['age','19']]);
console.log(m);//Map{'name'→'马冬梅','age'→'19'};
二 属性和方法
属性)
size 长度
console.log(m.size);//2
方法)
1 Set();添加或修改数据
m.Set('gender','女');//添加
m.Set('age','18');//修改
2 get();获取数据
m.get('name');
console.log('name');//马冬梅
3 has();查看是否存在某个数据
4 delete();删除 ()里输入的是键名
5 clear();清空
三 与数组相互转换
1 let arr=[...m];//映射转数组
2 let m=new Str(arr);//数组转映射