Поясните почему разные результаты цыклов

хочу сделать без цыкла,но тогда не выхоть выводить ячейки в нужном мне порядке,подскажите в чем проблема

window.onload =  function(){
    var table = document.getElementsByTagName('table')[0];
    var copy_table = table.cloneNode(true);
    for (var i=0; i<copy_table.rows.length; i++) {
        var row = copy_table.rows[i];
        var tmp = row.cells[col1].innerHTML;
        row.cells[1].innerHTML = row.cells[2].innerHTML;
        row.cells[2].innerHTML = tmp;
    }
    copy_table.classList.add('t2');
    document.body.appendChild(copy_table)
};
window.onload = function (){
    var table = document.getElementsByTagName('table')[0];
    var copy_table = table.cloneNode(true);
    [].forEach.call(copy_table,function(i){
        var row = copy_table.rows[i];
        var tmp = row.cells[1].innerHTML;
        row.cells[1].innerHTML=row.cells[2].innerHTML;
        row.cells[2].innerHTML=tmp;
    })
    copy_table.classList.add('t2');
    document.body.appendChild(copy_table)
};

всееее)проблему решил)))
:grinning:

я не совсем понял

а сам forEach-ем ходишь (тот же цикл только в профиль :smirk: )
хотя и замыкания к циклам можно приписать…

ну да ладно…

Так делись, че решил то?

лучше использовать просто цикл for вместо forEach. У forEach скорость перебора в два раза ниже (https://coderwall.com/p/kvzbpa/don-t-use-array-foreach-use-for-instead).

window.onload = function (){
var table = document.querySelector(‘table’),
copy_table,
addTable = document.getElementById(‘addTable’).addEventListener(‘click’,function(){
copy_table = table.cloneNode(true),
[].forEach.call(copy_table.rows,function(i){
var row = i;
var tmp = row.cells[1].innerHTML;
row.cells[1].innerHTML=row.cells[2].innerHTML;
row.cells[2].innerHTML=tmp;
document.body.appendChild(copy_table);
copy_table.classList.add(‘t2’);
})
},false),
addTr=document.getElementById(‘addTr’).addEventListener(‘click’,function() {
copy_table = table.cloneNode(true);
[].forEach.call(copy_table.rows,function(i){
var row =i;
var tmp = row.cells[0].cloneNode(true);
tmp.innerHTML=parseFloat(row.cells[1].innerHTML + row.cells[2].innerHTML);
row.appendChild(tmp);
})
copy_table.rows[0].cells[3].innerHTML = 4;
document.body.appendChild(copy_table);
})
}