Назначение нескольких переменных в Javascript/GAS — это самый компактный способ сделать это?

#google-apps-script

#google-приложения-скрипт

Вопрос:

Итак, у меня есть электронная таблица, из которой мы извлекаем 2d-массив значений. Но на самом деле мне нужна одна переменная на строку этого 2d-массива. Следующий код действительно работает… но это лучший способ сделать это?

 function testAssignments(){  config = ss.getRange("C2:C6").getValues();//2D Array  result = []  config.forEach(x =gt; result.push(x[0]))  var [a,b,c,d,e] = result;  console.log(a,b,c,d,e); }  

Я также попробовал линию config.forEach(x=gt; x=x[0]) , но по какой-то причине это не сработало.

Комментарии:

1. Я не уверен, что это прямой ответ на is this the best way to do it? этот вопрос . Поэтому я отвечаю в качестве комментария. В качестве еще одного направления, как насчет следующих примеров сценариев? 1. const v = config.reduce((o,[c],i) =gt; (o[String.fromCharCode(97 i)] = c, o), {}) В этом сценарии значения могут быть получены с помощью v.a, v.b,,, . 2. config.forEach(([c],i) =gt; this[String.fromCharCode(97 i)] = c) В этом случае значения могут быть получены с помощью a, b,,, . Но в данном случае эти переменные объявляются глобальными.

Ответ №1:

Используйте .flat вместо .forEach и .push . Если вам нужно другое имя переменной для каждого элемента, лучшего способа нет.

 const [a,b,c,d,e] = ss.getRange("C2:C6").getValues().flat();//1D Array //or const [[a],[b],[c],[d],[e]] = ss.getRange("C2:C6").getValues();  

Комментарии:

1. Спасибо! такой чистый вид!