javascript 集合 Object Array Map Set
//Object //创建 var obj = {} function obj(){} class obj{} //Array api Array属性和方法: for 条件判断: break continue return let arr = [function (){}, new Fun(), undefined, null, boolean, string, number, []]; var x = arr.length // arr 中元素的数量 var y = arr.indexOf('1') // "value" 值的索引值 isArray() Array.isArray(arr)判断对象是否为数组。 arr.concat(arr_a, arr_b) 连接两个或更多的数组,并返回结果。注意:不影响原数组 copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中。 entries() 返回数组的可迭代对象。 every(function (){}) 检测数值元素的 每个元素 是否都符合条件。返回 布尔值 filter() 检测数值元素,并返回符合条件所有元素的数组。返回 新数组 fill() 使用一个固定值来填充数组。 find() 返回符合传入测试(函数)条件的数组元素。 findIndex() 返回符合传入测试(函数)条件的数组元素索引。 arr.forEach(function (val, key){}) 数组每个元素都执行一次回调函数。 from() 通过给定的对象中创建一个数组。 includes() (es7新方法)判断一个数组是否包含一个指定的值。 arr.indexOf(arr的value) 搜索数组中的value,并返回key,否则返回 -1 join() 把数组的所有元素放入一个字符串。 keys() 返回数组的可迭代对象,包含原始数组的键(key)。 lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置。 map() 通过指定函数处理数组的每个元素,并返回处理后的数组。 pop() 删除数组的最后一个元素并返回删除的元素。 unshift() 向数组的开头添加一个或更多元素,并返回新的长度。 push() 向数组的末尾添加一个或更多元素,并返回新的长度。 reduce(fun) 将数组元素计算为一个值(从左到右)。 reduceRight(fun) 将数组元素计算为一个值(从右到左)。 reverse() 反转数组的value顺序。 shift() 删除并返回数组的第一个元素。 slice() 选取数组的的一部分,并返回一个新数组。 array.some(function (value, key, array){let a = 0; return value > 0;})检测数组元素中是否有元素符合指定条件。如果有立即返回true sort(fun) 对数组的元素进行排序。 splice(key, num) 从数组中添加或删除元素。 toString() 把数组转换为字符串,并返回结果。 valueOf() 返回数组对象的原始值。 //Map 优点: 查询很快 var map = new Map();//声明 map.set("key","value");//增加 map.delete("key");//删除 map.get("key");//获取 map.has("key");//判断key是否存在 Map test let k = 0, arr = [], map = new Map(); for(k = 0; k < 1000000; k++){ arr[k] = {id:Number(k), content:'test'}; map.set(k, {id:Number(k), content:'test'}); } console.time('arr'); arr[999999]; console.timeEnd('arr');//0.022ms console.time('map'); map.get(999999); console.timeEnd('map');//0.005ms //Set 优点:1:可以很快的让array数组的value去重复, 2:相对于Array数组 速度更快 注意: set数组里面没有key键, 只有value,且都是唯一的 属性: size:返回集合所包含元素的数量 方法: var set = new Set(); // 空Set set = new Set([1, 2, 3]); set.add(value);//添加 set.delete(value);//删除 set.has(value);//返回 布尔值 set.clear(): 移除集合里所有的项 //遍历 set.keys().next().value set.values().next().value set.entries().next().value['0'] forEach((value, value, set)=>{}) Set test //add let k = 0, arr = [], set = new Set(); for(k = 0; k < 1000000; k++){ arr[k] = {id:Number(k), content:'test'}; set.add({id:Number(k), content:'test'}); }