Python - 関数(リスト内包表記)のJavaScriptの場合の配列の操作に使った、for loop、map、forEachの3つがどう違うのか少し気になったので、とりあえず単純な操作の速度を計測して比較してみることに。
することは、整数0から指定した整数(読み込み時は10万)までの配列の各要素を2倍して、それぞれの方法でそれぞれの空の配列にpushしていく。
コード(BBEdit)
var a = [],
b = [],
c = [],
d = [],
n = parseInt($('#t0').val(), 10),
result = "",
start, t, i, max;
for (i = 0, max = n; i < max; i += 1) {
a[i] = i;
}
start = new Date().getTime();
for (i = 0, max = a.length; i < max; i += 1) {
b.push(2 * a[i]);
}
t = new Date().getTime() - start;
result += "for loop: " + (t / 1000) + "秒\n";
start = new Date().getTime();
a.forEach(function ( x ) {
c.push(2 * x);
});
t = new Date().getTime() - start;
result += "forEach: " + (t / 1000) + "秒\n";
start = new Date().getTime();
d = a.map(function ( x ) {
return 2 * x;
});
t = new Date().getTime() - start;
result += "map: " + (t / 1000) + "秒\n";
$('#pre0').text(result);
0 コメント:
コメントを投稿