JavaScript集合基本操作
参考
集合
A r r ay
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<friuits.length;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
Se t
1. 源码定义
interface Set<T> {
add(value: T): this;
clear(): void;
delete(value: T): boolean;
forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;
has(value: T): boolean;
readonly size: number;
}indexof的用法javascript
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<K, V> {
clear(): void;
delete(key: K): boolean;
forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;
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本⾝获得(1)返回对应的value 判断是否存在键myMap.has(1)返回bool
根据键删除myMap.delete(1)返回bool
3. 遍历
4. 4. 特殊说明特殊说明
任何⼀个NaN 都不等于 NaN, 但是NaN 可以作为Map 的键,⽽且是唯⼀的。undefined 等于undefined ; 所有变量初始值都为undefined
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] ies()) { console.log(key + " = " + value);}
myMap.forEach(function(value, key) { console.log(key + " = " + value);}, myMap)
var myMap = new Map();
myMap.set(NaN, "not a number"); console.(NaN)); // "not a number"
var otherNaN = Number("foo");
console.(otherNaN)); // "not a number"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论