多重嵌套for循环太丑,运行效率又低,有没有什么办法可以降低它的嵌套层数?游戏内怎么简洁优雅的获取我想要的数据,又有良好的智能提示效果?
有没有通用的提高运行效率的方案?没错,es6的Map就是为你定制的。
先看一个简单的例子,数组去重:
let myArray = [1, 2, 3, 4, 5, 2, 1];function getArray(array) {
let newArray = []; for (let i = 0, l = array.length; i < l; i++) {
for (let j = i + 1; j < l; j++) {
if (array[i] === array[j]) {
j = ++i; } } newArray.push(array[i]); } return newArray;}console.warn(getArray(myArray));
上面用了最基本的2重for循环遍历数组达到去重的效果,代码运行效率低,时间复杂度达到了O(n2),如何优化成一重for循环呢?用Map试一试!
Map是es6新出的一种数据结构,用来表示键值对,object也是键值对结构&#x