5.数组的扩展

2020-06-28  本文已影响0人  web_jianshu
<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="UTF-8" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <meta http-equiv="X-UA-Compatible" content="ie=edge" />

    <title>Document</title>

  </head>

  <body></body>

</html>

<script>

  // ES5新增的数组的方法

  // forEach(无return),map,filter,every,reduce

  // Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象

  // Array.of 把一组值转成数组 用于代替new Array(7, 8, 9) 创建数组

  // // new Array() // 传一个参数是空数组 传两个及两个以上是数组

  // find: 找到满足的值

  // findIndex:找到当前满足条件值的索引值

  // 两者都是找到就返回

  // includes() 判断数组中是不是包含某一个值

  // 数组的扩展运算符 (...) 可以把数组展开成用逗号隔开的一组值:展开参数、复制数组

  // function sum() {

  //   console.log(arguments);

  //   // ES5中转为真数组

  //   console.log([].slice.call(arguments)); // [1, 2]

  //   // ES6

  //   console.log(Array.from(arguments)); // [1, 2]

  // }

  // sum(1, 2);

  // console.log(Array.of(7, 8, 9)); // [7, 8, 9]

  // let arr = [1, 5, 3, 4];

  // let number = arr.find((item, index) => {

  //   return item > 1;

  // });

  // console.log(number); // 5

  // let arr = [1, 5, 3, 4];

  // let index = arr.findIndex((item, index) => {

  //   return item > 1;

  // });

  // console.log(index); // 1

  // 拿到数组的值

  // let arr = [1, 5, 3, 4];

  // for (let v of arr.values()) {

  //   console.log(v); // 1 5 3 4

  // }

  // 拿到索引值

  // let arr = [1, 5, 3, 4];

  // for (let v of arr.keys()) {

  //     console.log(v); // 0 1 2 3

  // }

  // 获取数组索引与其值 组成新数组

  // let arr = ["a", "aa", "aaa", "aaaa"];

  // for (let v of arr.entries()) {

  //   console.log(v);

  // }

  // arr.includes(5) // true

  // let arr1 = ["hello", "world", "你好", "世界"];

  // let arr2 = arr1; // arr2和arr1是同一个地址

  // 合并数组  复制数组:...arr1 把数组展开成用逗号隔开的一组值

  // let arr1 = [1, 2, 3];

  // let arr2 = ["haha", ...arr1, "哈哈哈"]; // 拷贝数组, 引申出合并数组  arr2和arr1不是同一个地址

  // console.log(arr2); // (5) ["haha", 1, 2, 3, "哈哈哈"]

  // 函数中展开参数(实参)

  // function count(a, b) {

  //   // 假设 arguments = [...[1, 2]]

  //   // 相当于 let [a, b] = [...[1, 2]]

  //   return a + b;

  // }

  // console.log(count(...[1, 2])); // 3

  // let arr = [1, 5, 3, 4];

  // console.log(Math.max.apply(null, arr)); // 5

  // console.log(Math.max.call(null, 1, 5, 2, 3, 4)); // 5

  // console.log(Math.max.call(null, ...arr)); // 5

  // console.log(Math.max(...arr)); // 5 求一组值中最大的 Math.max() ⟺ Math.max.call(null, ...arr)

  // 与解构赋值合并 ...info 把用逗号隔开的一组值重新组成数组 且只能用在数组最后 无别名 有顺序 用=指定默认值

  // let [name, ...info] = arr1;

  // console.log(name, info);

  // 总结: ...用于数组内展开数组、展开参数、解构赋值

  // Set构造函数 类似Array 成员的值都是唯一的, 没有重复 可以接受数组为参数 用于数组去重

  // var arr = [1, 2, 3, 4, 4, 4, 5, 3, 2, 1];

  // var [...arr] = new Set(arr);

  // console.log(arr); // (5) [1, 2, 3, 4, 5]

  // 简写:

  // var arr = [...new Set([1, 2, 3, 3, 4, 3, 3, 5])];

  // console.log(arr); // [1, 2, 3, 4, 5]

</script>
上一篇 下一篇

猜你喜欢

热点阅读