Как правильно сформировать JSON на JS

Что делаю не правильно ?

Нужно сформировать правильный JSON А у меня получаются только дубликаты

function fun() {
    let rows        = $('.grid-row.ng-scope');                                                                              
    let rowsHow     = $(rows).length;                                                                                       
    let direction   = $(rows).find('.geo-col.grid-column').text().replace(/\r?\n/g, "");                                    
    let transport   = $(rows).find('.transport-col.grid-column').text().replace(/\r?\n/g, "");                              
    let size        = $(rows).find('.weight-col.grid-column').text().replace(/\r?\n/g, "");                                 
    let load        = $(rows).find('.loading-col.grid-column').text().replace(/\r?\n/g, "");                                
    let unload      = $(rows).find('.unloading-col.grid-column').text().replace(/\r?\n/g, "");                              
    let rate        = $(rows).find('.load-additional-info-block > .rate-col.grid-paddings').text().replace(/\r?\n/g, "");   // Ставка

    // Обект JSON
    var row = {};
    $(rows).each(function (i) {
        var key = 'row' + i;
        var addrow = {
            jsonDirection: direction,
            jsonTransport: transport,
            jsonSize: size,
            jsonLoad: load,
            jsonUnload: unload,
            jsonRate: rate,
        };
        row[key] = addrow;
    });
    console.log(JSON.stringify(row));
};

Ответы (1 шт):

Автор решения: Igor
let rows    = $('.grid-row.ng-scope');
let rowsHow = $(rows).length;
var rowDatas = {};
$(rows).each(function (i) {
    let key = 'row' + i;
    let direction = $(this).find('.geo-col.grid-column').text().replace(/\r?\n/g, "");
    ...         
    rowDatas[key] = {
        jsonDirection: direction,
        ...
    };
→ Ссылка