Объединить 2 переменных фрейма данных с одинаковым количеством строк в 1 одиночный фрейм данных в скрипте google

У меня есть 2 фрейма данных.

1-й фрейм данных после нескольких манипуляций с данными выглядит так

Date
1/2/2019
1/3/2019
1/4/2019
1/5/2019
1/6/2019
1/7/2019
1/8/2019
1/9/2019

Второй фрейм данных — это диапазон, полученный из листа Google, который выглядит следующим образом.

DATA	UCL
0.005	0.015
0.005	0.015
0.005	0.015
0.005	0.015
0.005	0.015
0.005	0.015
0.005	0.015
0.005	0.015

Как мне объединить эти 2 переменные, чтобы сформировать единый фрейм данных, который можно передать.

выглядеть так

Date	DATA	UCL
1/2/2019	0.005	0.015
1/3/2019	0.005	0.015
1/4/2019	0.005	0.015
1/5/2019	0.005	0.015
1/6/2019	0.005	0.015
1/7/2019	0.005	0.015
1/8/2019	0.005	0.015
1/9/2019	0.005	0.015

Это текущий код

    var Bvals = sheet.getRange("B12:B").getValues(); 

    var Blast = Bvals.filter(String).length; 

    var daterange = sheet.getRange(firstrow, 1, Blast, 1); 

    var Dateconverted = Utilities.formatDate(daterange, "GMT", ""EEE MMM dd yyyy");  

    range = sheet.getRange(firstrow, 2, Blast, 3);  

    var datarange2 = range.getValues();   

Dateconverted — это 1-й фрейм данных, datarange2 — 2-й фрейм данных с 2 столбцами. Я хочу объединить эти 2 фрейма данных как Var Data3 = {некоторый код для объединения этих 2 таблиц данных для создания одной таблицы данных}

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
75
1

Ответы 1

Диапазон — это в основном двумерный массив, который работает как valueOfCellInRange = range[rowIndex][columnIndex], поэтому, чтобы «расширить» каждую строку, чтобы включить значения из двух строк в разных диапазонах, вы должны сделать что-то вроде:

var newRangeValues = [];
for (var i = 0; i < dataRange1.length; i++){
  // Length of the outer array will be the number of rows to loop through
  //   (assumes the two source ranges have an equal number of rows)
  var combinedRow = dataRange1[i].concat(dataRange2[i]); 
  // dataRange1[i] will hold a one-item array like ["Date"]
  // dataRange2[i] will hold an array like ["DATA","UCL"]
  // concat() will merge them into one array

  newRangeValues.push(combinedRow);
}
myTargetRangeOnSheet.setValues(newRangeValues);

Примечание. Я не тестировал этот код в таблицах Google, но он должен быть очень близок к тому, что вы пытаетесь сделать. (И вы можете проверить этот объяснение метода concat для массивов.)

Вот фрагмент кода, чтобы показать, что он работает в браузере:

const dataRange1 = [
  ["Date"],
  ["1/1/19"]
];
const dataRange2 = [
  ["DATA", "UCL"],
  ["DATA thing", "UCL thing"]
];
const newRangeValues = [];

for (let i = 0; i < dataRange1.length; i++){
  const combinedRow = dataRange1[i].concat(dataRange2[i]); 
  newRangeValues.push(combinedRow);
}
console.info(newRangeValues);

Другие вопросы по теме