/******************* */
// Array.from ES2015 ES6
//
// 返回一个新的数组引用
const arr = [1, 2, 3, 4];
const newArr = Array.from(arr);
// 如果参数是一个带有引用类型元素的数组。
// 返回的新数组是一个浅拷贝
const arr = [{ id: 1, age1 }]
// 参数是一个字符串
// 字符串是一个可迭代对象
const str = '123';
const newArr3 = Array.from(str);
// 参数是一个Symbol 类型 - Array.from 不做处理 返回一个新的数组。
const sm = Symbol('123');
Array.from(sm);
// 参数是一个数字 Array.from 不做处理 返回一个新数组。 因为他们不是可迭代对象 Symbol.iterator
// 参数是一个bool Array.from 不做处理 返回一个新数组。 因为他们不是可迭代对象 Symbol.iterator
// 参数是一个RegExp Array.from 不做处理 返回一个新的数组。 因为他们不是可迭代对象 Symbol.iterator
// 参数是null / undefined 也不是可迭代对象。直接报错
// 参数是普通对象 Array.from 不做任何处理 返回一个新的数组.
// 参数是一个类数组
// 1.键名必须从0 开始数字顺序排序
// 2.length 属性必须正确
// 长度决定了新数组的长度.属性名决定了而填充该数组的位置.
// 总结 Array.from 的第一个参数必须是可迭代对象 或者标准的类数组