多重嵌套 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(n