2016-08-12 4 views
0

У меня есть массив range с 3 столбцами и 10 строками.Объединить два столбца массива в новый

Как я могу объединить содержимое столбца 1 со столбцом 2 и нажать их в новый диапазон dataEnome?

Я использую следующий цикл, но это не очень эффективно:

var dataEnome =[]; 
for (i=0; i<range.length; i++){ 
    dataEnome.push(range[i][0])+(range[i][1]); 
}; 

диапазон выглядит следующим образом: enter image description here

+0

У вас есть пример того, как на самом деле диапазон выглядит? –

+0

Я не использовал фактические данные, но взглянул на мое решение –

ответ

0

Для отображения данных вы можете рассмотреть возможность использования array.map API.

Пример:

var range = 
 
    [ 
 
     [ 'col1.a', 'col2.1', 'c' ], 
 
     [ 'col1.b', 'col2.2', '3' ], 
 
     [ 'col1.c', 'col2.3', '6' ], 
 
     [ 'col1.d', 'col2.4', '9' ], 
 
     [ 'col1-e', 'col2.5', '1c' ], 
 
     [ 'col1-f', 'col2.6', '6c' ], 
 
     [ 'col1-g', 'col2.7', '7c' ], 
 
     [ 'col1-h', 'col2.8', '8c' ], 
 
     [ 'col1-i', 'col2.9', '9c' ], 
 
     [ 'col1-j', 'col2.10', '0c' ], 
 
    ]; 
 
var dataEnome =range.map(row => { return row[0] + row[1]}); 
 
console.log(dataEnome);

Для более примеров использования для map;

См: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

0

Если вы хотите, чтобы сцепить каждую запись как из колонки

Вы можете сделать что-то вроде этого:

var dataEnome =[]; 
 
    for (i=0; i<range.getValues().length; i++){ 
 
    dataEnome.push(range.getValues()[i][0]+range.getValues()[i][1]); 
 
    };

Надеется, что это поможет вам.

Спасибо.

0

... кроме того dataEnome.push(range[i][0])+(range[i][1]); делает наиболее вероятно, есть сломанный синтаксис ... не должен он быть dataEnome.push(range[i][0] + range[i][1]); или dataEnome.push(range[i][0].concat(range[i][1])); ... Я не считаю решение Ор, чтобы быть не так эффективно.

Один только может превратить его в многоразовый и более функциональный стиль ...

function collectConcatenatedFirstTwoRowColumns(collector, row) { 
 

 
    collector.push(row[0].concat("/", row[1])); 
 
    return collector; 
 
} 
 

 
var 
 
    range = [ 
 
     ["0, 0", "0, 1", "0, 2"], 
 
     ["1, 0", "1, 1", "1, 2"], 
 
     ["2, 0", "2, 1", "2, 2"], 
 
     ["3, 0", "3, 1", "3, 2"], 
 
     ["4, 0", "4, 1", "4, 2"], 
 
     ["5, 0", "5, 1", "5, 2"] 
 
    ], 
 
    dataEnome = range.reduce(collectConcatenatedFirstTwoRowColumns, []); 
 

 
console.log(dataEnome);

Смежные вопросы