类数组 伪数组

Array.from()

  1. {
  2. // Array.from() 方法从一个类似数组或可迭代对象中创建一个新的数组实例。
  3. let p = document.querySelectorAll("p");
  4. let pArr = Array.from(p);
  5. pArr.forEach(function (item) {
  6. console.log(item.textContent); //
  7. });
  8. console.log(
  9. Array.from([1, 3, 5], function (item) {
  10. return item * 2;
  11. })
  12. ); // [ 2, 6, 10 ]
  13. }

Array.of()

  1. {
  2. // Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
  3. let arr = Array.of(3, 4, 7, 9, 11);
  4. console.log("arr=", arr); // arr= [ 3, 4, 7, 9, 11 ]
  5. let empty = Array.of();
  6. console.log("empty", empty); // empty []
  7. }

copyWithin()

  1. {
  2. // copyWithin函数,用于操作当前数组自身,用来把某些个位置的元素复制并覆盖到其他位置上去
  3. // Array.prototype.copyWithin(target, start = 0, end = this.length)
  4. // target:目的起始位置。
  5. // start:复制源的起始位置,可以省略,可以是负数。
  6. // end:复制源的结束位置,可以省略,可以是负数,实际结束位置是end-1。
  7. console.log([1, 2, 3, 4, 5].copyWithin(0, 3, 4)); // [ 4, 2, 3, 4, 5 ]
  8. }

fill()

  1. {
  2. // fill()函数,使用制定的元素填充数组,其实就是用默认内容初始化数组
  3. // arr.fill(value, start, end)
  4. // value:填充值
  5. // start:填充起始位置,可以省略
  6. // end:填充结束位置,可以省略,实际结束位置是end-1
  7. console.log("fill-7", [1, "a", undefined].fill(7)); // fill-7 [ 7, 7, 7 ]
  8. console.log("fill,pos", ["a", "b", "c"].fill(7, 1, 3)); // fill,pos [ 'a', 7, 7 ]
  9. }

find() findIndex()

  1. {
  2. // 数组实例的find方法,用于找出符合条件的数组的值
  3. // 数组实例的findIndex方法,用于找出符合条件的数组下标
  4. console.log(
  5. [1, 2, 3, 4, 5, 6].find(function (item) {
  6. return item > 3;
  7. })
  8. ); // 4
  9. console.log(
  10. [1, 2, 3, 4, 5, 6].findIndex(function (item) {
  11. return item > 3;
  12. })
  13. ); // 3
  14. }

includes()

  1. {
  2. // ES6提供了Array.includes()函数判断是否包含某一元素,除了不能定位外,解决了indexOf的上述的两个问题。它直接返回true或者false表示是否包含元素,对NaN一样能有有效。
  3. console.log("number", [1, 2, NaN].includes(1)); // number true
  4. console.log("number", [1, 2, NaN].includes(NaN)); // number true
  5. }

entries\keys\values

  1. {
  2. // ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历
  3. // values() 方法在 Chrome 下面运行会报错未定义(not a function)
  4. for (let index of ["1", "c", "ks"].keys()) {
  5. console.log("keys", index);
  6. // keys 0
  7. // keys 1
  8. // keys 2
  9. }
  10. for (let values of ["1", "c", "ks"]) {
  11. console.log("values", values);
  12. // values 1
  13. // values c
  14. // values ks
  15. }
  16. for (let [index, values] of ["1", "c", "ks"].entries()) {
  17. console.log("index,values", index, values);
  18. // index,values 0 1
  19. // index,values 1 c
  20. // index,values 2 ks
  21. }
  22. }