5.4 数组

数组的 length 是最大索引+1
清空数组最简单的方法就是:arr.length = 0

push 和 unshift 都接受多个参数: arr.push(1, 2, 3, 4)

5.5 数组方法

forEach 和 map 都不会改变数组本身

5.6 可迭代对象

可以应用 for..of 的对象被称为 可迭代的。

Array.from(obj[, mapFn, thisArg]) 将可迭代对象或类数组对象 obj 转化为真正的数组 Array,然后我们就可以对它应用数组的方法。可选参数 mapFn 和 thisArg 允许我们将函数应用到每个元素。

数组去重

  1. function unique(arr) {
  2. // return [...new Set(arr)]
  3. return Array.from(new Set(arr));
  4. }

5.9 解构赋值

  1. let user = "mark tuwen";
  2. let [firstName, secondName] = user.split(" ");
  3. // 循环
  4. for (let [key, value] of Object.entries(user)) {
  5. alert(`${key}:${value}`); // name:John, then age:30
  6. }
  7. // 交换两个变量的值
  8. let guest = "Jane";
  9. let admin = "Pete";
  10. [guest, admin] = [admin, guest];
  11. // 对象解构,属性名要对应
  12. let {prop : varName = default, ...rest} = object
  13. // 数组解构,位置要对应
  14. let [item1 = default, item2, ...rest] = array