四(1)、ES6数组新增方法Array.from() ------ 2019-08-20

// 作用:方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象
//(包括 ES6 新增的数据结构 Set 和 Map);
// 自己理解:把类数组(获取一组元素、arguments...) 对象转成数组,也就是只要有length属性就可以转;

1、基本用法:

let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};
// ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

2、实际场景中的两种常见用法:

//(1)获取DOM 操作返回的 NodeList 集合;
let aLi = document.querySelectorAll('ul li'); //  获取页面中的dom
let arrLi = Array.from(aLi);  //ES6方法 转成数组,可以做一些筛选一类的操作
arrLi.pop();
arrLi.forEach((item,key)=>{ //  将dom再添加到页面中
   document.getElementById('dv').appendChild(item)
})

//(2)以及函数内部的arguments对象。
function foo() {
  var args = Array.from(arguments);
  // ...
}

3、Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组

Array.from([1, , 2, , 3], (n) => n || 0)
// [1, 0, 2, 0, 3]

你可能感兴趣的:(四(1)、ES6数组新增方法Array.from() ------ 2019-08-20)