(1)声明
let arr = new Array(); //不推荐 let arr = [];(2)循环
//第一种 for (let i = 0; i < arr.length; i++) { alert( arr[i] ); } //第二种 for (let item of arr) { alert( item ); }(3)方法
添加/删除元素:
push(...items) — 从结尾添加元素,pop() — 从结尾提取元素,shift() — 从开头提取元素,unshift(...items) — 从开头添加元素,splice(pos, deleteCount, ...items) — 从 index 开始:删除 deleteCount 元素并在当前位置插入元素。slice(start, end) — 它从所有元素的开始索引 "start" 复制到 "end" (不包括) 返回一个新的数组。concat(...items) — 返回一个新数组:复制当前数组的所有成员并向其中添加 items。如果有任何items 是一个数组,那么就取其元素。查询元素:
indexOf/lastIndexOf(item, pos) — 从 pos 找到 item,则返回索引否则返回 -1。includes(value) — 如果数组有 value,则返回 true,否则返回 false。find/filter(func) — 通过函数过滤元素,返回 true 条件的符合 find 函数的第一个值或符合 filter 函数的全部值。findIndex 和 find 类似,但返回索引而不是值。转换数组:
map(func) — 从每个元素调用 func 的结果创建一个新数组。sort(func) — 将数组倒序排列,然后返回。reverse() — 在原地颠倒数组,然后返回它。split/join — 将字符串转换为数组并返回。迭代元素:
forEach(func) — 为每个元素调用 func,不返回任何东西。其他:
Array.isArray(arr)— 检查 arr 是否是一个数组。fill(value, start, end) — 从 start 到 end 用 value 重复填充数组。some(fn)/every(fn) — 数组每个元素上调用函数 fn。如果任何/所有结果为 true,则返回 true,否则返回 false。
(4)Map、Set
Map是一个键值对的集合,很像 Object。但主要的区别是,Map 允许所有数据类型作为键。
主要方法:
new Map() – 创建 map。map.set(key, value) – 根据键(key)存储值(value)。map.get(key) – 根据键返回值,如果 map 中该键不存在,返回 undefined。map.has(key) – 如果键存在,返回 true,否则返回 false。map.delete(key) – 移除该键的值。map.clear() – 清空 mapmap.size – 返回当前元素个数。遍历方法:
map.keys() – 返回键的迭代器。map.values() – 返回值的迭代器。map.entries() – 返回 [key, value] 迭代器入口,for..of 循环会默认使用它。map.forEach((value,key, map) => { ... })Set 是一个值的集合,这个集合中所有的值仅出现一次。
主要方法:
new Set(iterable) – 创建 set,利用数组来创建是可选的(任何可迭代对象都可以)。set.add(value) – 添加值,返回 set 自身。set.delete(value) – 删除值,如果该 value 在调用方法的时候存在则返回 true ,否则返回 false。set.has(value) – 如果 set 中存在该值则返回 true ,否则返回 false。set.clear() – 清空 set。set.size – 元素个数。遍历方法:
set.keys() – 返回 set 中值的迭代对象,set.values() – 和 set.keys 一样,为了兼容 Map,set.entries() – 返回形如 [value, value] 的迭代对象,为了兼容 Map 而存在。set.forEach((value,value, map) => { ... })注意:forEach 函数用于 Set 时有三个参数:value,然后又一个 value,之后是目标对象,为了兼容 Map 。
返回迭代对象使用 for...of 进行迭代循环操作。
// 迭代键 for (let of map.keys()) { ... } // 迭代值 for (let of map.values()) { ... } // 迭代键值对 for (let entry of map) { //默认: map.entries() ... } for (let user of set) { ... } // set 兼容上面 map 方法。(5)对象的键、值、项
对象方法:
Object.keys(obj) —— 返回一个包含该对象全部的键的数组。Object.values(obj) —— 返回一个包含该对象全部的值的数组。Object.entries(obj) —— 返回一个包含该对象全部 [key, value] 键值对的数组。注意:Map,Set 返回的是迭代器,而对象返回的数组。当然,同样可以使用 for...of 进行遍历循环。