2013年3月12日火曜日

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 コメント:

コメントを投稿