1. 数组的创建方式
直接创建
let arr = new Array(3,2)
使用rest运算符
1 2
| let str = "Hello World"; [...str];
|
使用Array.from(v)【v为类数组对象或者可遍历的对象】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| let array_like = {"0" : "terry", "1" : "larry", length : 2} console.log(array_like);
let {slice} = [];
console.log(slice.call(array_like,0)); 等价于 console.log(Array.prototype.slice.call(array_like,0));
console.log(arr_like); console.log(Array.from(array_like));
let set = new Set([1,2,3,1,2,4,5,6]); console.log(set); console.log(Array.from(set));
|
使用Array.of(p1,p2,….)将参数中的元素转换为数组
2. 方法
Array.prototype.includes
检测数组中是否包含某个元素,返回的是Boolean值
Array.prototype.find(function(){})
检测数组中是否包含某个值或符合某个条件,起筛选作用
举例:
1 2
| let arr = [1,2,3,4]; arr.find(item => item > 2)
|
Array.prototype.findIndex
检测数组中是否包含某个值或符合某个条件,起筛选作用
举例:
1 2
| let arr = [1,2,3,4]; arr.findIndex(item => item > 2)
|
Array.prototype.fill
用一个元素填充数组
Array.prototype.keys
获取一个数组的所有索引
Array.prototype.values
获取一个数组的所有值
Array.prototype.entries
获取一个数组的所有索引和值
3. 数组的迭代
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| let arr = ["terry","larry","tom","jacky"];
let values_iterator = arr.values();
let item; while(!(item = values_iterator.next()).done){ console.log(item.value); }
let entry_iterator = arr.entries(); for(let entry of entry_iterator){ console.log(entry); }
for(let item of arr){ console.log(item); }
|
4. 集合api
Set
无序不可以重复的集合【天然去重】(数组中的元素可以重复)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 1. 实例化Set对象 let set = new Set(); let set = new Set([1,2,3,1,2])
2. Set.prototype.xxx size delete(val) has(val) add(val) clear() forEach() keys() values() entries()
|
Map
key可以为任意数据对象(对象的key只能为字符串)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 1. 实例化map对象 let map = new Map() let map = new Map(entry)
2. Map.prototype.xxx size set(key,val) get(key) has(key) delete(key) clear() keys() values() entries()
|