#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. Спасибо! такой чистый вид!