【发布时间】:2018-01-23 22:04:00
【问题描述】:
我编写了一段运行良好的代码。我想要一个由 myArr 中的元素按 orderArr 中指定的顺序组成的新数组。但是,它在另一个 for 循环中使用 for 循环来匹配数组元素。
var myArr = ['a', 'b', 'c', 'd', 'e'];
var orderArr = ['e', 'c'];
var reArr = [];
for (var i = 0; i < orderArr.length; i++) {
for (var k = 0; k < myArr.length; k++) {
if (myArr[k] == orderArr[i]) {
reArr.push(myArr[k]);
}
}
}
console.log(reArr);
我经常听说在另一个 for 循环中使用 for 循环是不好的做法,甚至应该避免使用 forEach。
我还能如何重写这段代码。
【问题讨论】:
-
“我经常听说在另一个 for 循环中使用 for 循环是不好的做法” 特别是从任何地方?虽然编写此代码的方法可能更短,但在内部,他们可能仍会使用几个循环来完成工作。
-
:-) 来自项目中的其他开发人员。他们说这是性能问题。我不确定如何...
-
询问他们打算如何可靠和准确地测量它以表明这是一个性能问题......!我敢打赌,最后对
console.log的单个调用比所有循环组合起来要慢得多... -
你的最终目标是什么?嵌套的 for 循环是正确工作的正确工具。在这种情况下,您可能需要 Array#includes 来代替
标签: javascript for-loop foreach