When I experimented what was the fastest in the JavaScript loop, "for" was the fastest!
function getArray() {
var array = []
for(var i=1; i<=1000000; i++) {
array.push(i)
}
return array
}
function test() {
var array = getArray()
testtest(array, forTest)
testtest(array, forEachTest)
testtest(array, mapTest)
testtest(array, for2Test)
testtest(array, whileTest)
}
function testtest(array, callback) {
var start = new Date()
callback(array)
var end = new Date()
var span_sec = (end - start)/1000
Logger.log("処理時間は " + span_sec + " 秒でした" );
}
function forTest(array) {
var l = array.length
for(var i=0; i<l; i++) {
}
}
function forEachTest(array) {
array.forEach(function(i, e) {
})
}
function mapTest(array) {
array.map(function(e, i) {
})
}
function for2Test(array) {
for(var i in array) {
}
}
function whileTest(array) {
var i = array.length
while(i > 0 ) {
i--
}
}
result
[19-11-29 15:20:48:459 JST] forTestの処理時間は 1.197 秒でした
[19-11-29 15:20:49:823 JST] forEachTestの処理時間は 1.364 秒でした
[19-11-29 15:20:51:461 JST] mapTestの処理時間は 1.637 秒でした
[19-11-29 15:20:52:912 JST] for2Testの処理時間は 1.451 秒でした
[19-11-29 15:20:54:404 JST] whileTestの処理時間は 1.491 秒でした