参考 MDN
集合
Array
1. 2种创建数组的方式
var fruits = [] ;
var friuits = new Array();
2. 遍历
fruits.forEach(function (item, index, array){
console.log(item, index);
});
// Apple 0
// Banana 1
for(var i in friuits){
console.log(friuits[i]);
}
for(var i=0;i console.log(friuits[i]); } for(var value of friuits){ console.log(value); } 3. 基本操作 操作 代码 说明 添加元素到数组的末尾 fruits.push('Orange') 返回数组长度 添加元素到数组的头部 fruits.unshift('Strawberry') 返回数组长度 删除头部元素 fruits.shift(); 返回头部元素 删除尾部元素 fruits.pop(); 返回尾部元素 找出某个元素在数组中的索引 fruits.indexOf('Banana'); 返回下标 通过索引删除某个元素 fruits.splice(index, 1); 返回被删除的元素 复制数组 var shallowCopy = fruits.slice(0,length); 返回指定范围内元素组成的新数组 生成数组 Array.from() 返回Array.from() 方法从一个类似数组或可迭代对象中创建一个新的数组实例。 4. 根据索引删除元素的例子 /* splice(start: number, deleteCount: number, ...items: T[]): T[]; */ var fruits = ["apple","b","c","d"] ; console.log("array is : "); fruits.forEach(function (item, index, array){ console.log(item, index); }); var index = fruits.indexOf("b"); fruits.splice(index,1); console.log("array is : "); fruits.forEach(function (item, index, array){ console.log(item, index); }); 5. Array.from()使用例子 var fruits = ["apple","b","c","d"] ; var f = Array.from(fruits); f.forEach(function (item, index, array){ console.log(item, index); }); //apple 0 //b 1 //c 2 //d 3 var f = Array.from("hello"); f.forEach(function (item, index, array){ console.log(item, index); }); //h //e //l //l //o Array.from()还可以用于Set,Map Set 1. 源码定义 interface Set add(value: T): this; clear(): void; delete(value: T): boolean; forEach(callbackfn: (value: T, value2: T, set: Set has(value: T): boolean; readonly size: number; } 2. 基本操作说明 操作 代码 说明 创建 new Set([iterable]); 可以放入数组,Set, Map来初始化 添加元素 set.add(5) 返回Set本身 删除元素 set.delete(5)) 返回bool 判断是否有 set.has(5) 返回bool 长度 set.size 注意与数组长度区别,数组是length 清空 set.clear() 返回void 3. 遍历例子 let mySet = new Set([1,3,4,2,5]); //遍历 for (let item of mySet) console.log(item); for (let item of mySet.keys()) console.log(item); for (let item of mySet.values()) console.log(item); //三个遍历结果一样: 1 3 4 2 5 Map 1. 源码定义 interface Map clear(): void; delete(key: K): boolean; forEach(callbackfn: (value: V, key: K, map: Map get(key: K): V | undefined; has(key: K): boolean; set(key: K, value: V): this; readonly size: number; } 2. 基本操作说明 操作 代码 说明 创建 var myMap = new Map(); 添加 myMap.set(1,"hello") 返回map本身 获得 myMap.get(1) 返回对应的value 判断是否存在键 myMap.has(1) 返回bool 根据键删除 myMap.delete(1) 返回bool 3. 遍历 for (var key of myMap.keys()) { console.log(key); } for (var value of myMap.values()) { console.log(value); } for (var [key, value] of myMap) { console.log(key + " = " + value); } for (var [key, value] of myMap.entries()) { console.log(key + " = " + value); } myMap.forEach(function(value, key) { console.log(key + " = " + value); }, myMap) 4. 特殊说明 任何一个NaN 都不等于 NaN, 但是NaN可以作为Map的键,而且是唯一的。 undefined等于undefined ; 所有变量初始值都为undefined var myMap = new Map(); myMap.set(NaN, "not a number"); console.log(myMap.get(NaN)); // "not a number" var otherNaN = Number("foo"); console.log(myMap.get(otherNaN)); // "not a number"