1.Array.from()介绍
?? Array.from()方法从类似数组或可迭代对象创建一个新的(浅拷贝)的数组实例
Array.from(arrayLike,mapFn,thisArg)
arrayLike:必选,想要转换成数组的伪数组对象或可迭代对象
mapFn:可选,如果指定了该参数,新数组中的每个元素会执行该函数
thisArg:可选,执行回调函数mapFn时this对象
可迭代的对象包括ES6新增的数据结构Set和Map
Array.from可以通过以下方式来创建数组对象
1. 伪数组(拥有一个length属性和若干索引属性的任意对象)
2. 可迭代对象(可以获取对象中的元素,如Map和Set等)
Array.from()方法有一个可选参数mapFn,让你可以在最后生成的数组上,再执行一次map方法后再返回。
即Array.from(obj,mapFn,thisArg)相当于Array.from(obj).map(mapFn,thisArg);
2.将伪数组转换成数组
let likeArr = {
0:'react',
1:'Vue',
2:'angular',
3:'Node',
'length':4
}
let arr = Array.from(likeArr);
console.log(arr);
3.将Set/Map结构的数据转换为真数组
?? ES6提供了新的数据结构Set数据结构和Map数据结构
set结构介绍
1.Set数据结构,类似于数组,但是成员的值都是唯一的,
没有重复的值,Set不能提供的则是索引
let set = new Set(); //创建一个新的,空的Set结构对象
set.add({}); //添加元素,如果已经存在,咋不产生作用
console.log(set.size); //set.size获取集合大小,即其中元素的个数
set.add({}); //添加一个空对象,两个空对象不相等,被视为两个数据
set.add('Set'); //添加元素
set.add('Map');
console.log(set.size);
console.log(set);
?? set结构生成转为真正的数组
let arr = [1,1,2,97,56,56,56,56];
let set = new Set(arr);
console.log(set);
let arr2 = Array.from(set);
console.log(arr2);
map数据结构介绍
ES6提供了Map数据结构,类似于对象,也是键值对的集合,
但是“键”的范围,不限于字符串,各种类型的值(包括对象)都可以当作键,
Object结构提供了“字符串——值”的对应,Map结构提供了“值——值”的对应,
是一种更完善的Hash结构实现,如果你需要"键值对"的数据结构
,Map比Object更合适
const map = new Map();
const obj = {p:'hello world'};
map.set(obj,'content'); //键名是一个对象 ,设置或更新key值,set方法返回的是当前的map对象,因此可以采用链式写法。
console.log(map.get(obj)); //content ,读取key对应的减值
console.log(map.has(obj)); //true ,has(key)表示某个键是否在当前Map对象之中
console.log(map);
?? 将map结构转为真数组
const map = new Map();
map.set('one','React');
map.set('two','Vue');
map.set('three','Angular');
console.log(map);
const arr = Array.from(map);
console.log(arr);
4.将字符串转换为数组
let str = 'hello world!';
let arr = Array.from(str);
console.log(arr);
5.浅克隆一个数组
const numbers = [3,6,9];
const numberCopy = Array.from(numbers);
console.log(numbers);
console.log(numberCopy);
console.log(numbers === numberCopy);
在Array.from中使用箭头函数
const a = Array.from([1,2,3],x=>x+x)
console.log(a); //[2,4,6]
const b = Array.from({length:5},(v,i)=>i)
console.log(b); // [0,1,2,3,4]
6.使用Array.from实现数组去重
var arr = [1,1,2,2,4,4,4,5];
function unique(arr){
return Array.from(new Set(arr));
}
console.log(unique(arr));
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦