* javascript * Извлечь все для значений цикла как разные переменные - PullRequest
0 голосов
/ 12 декабря 2018

вопрос новичка:

Я использую простой цикл for в моем коде.Допустим, это возвращает 3 положительных значения a, b и c.Я хочу, чтобы все 3 значения были описаны как разные переменные для последующего использования вне цикла.Является ли это возможным?Пример кода:

var CampAdGR = ss.getRange("A9").getValue();
var data = ss.getRange("A23:A").getValues();

for (var i = 0; i < data.length; i++) {
    if (data[i][0] == CampAdGR) {*continue code*}

Спасибо!

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Если у вас есть массив значений, вы можете объявить переменные отдельно:

var data = [ 1, 2, 3 ];
var a = data[ 0 ];
var b = data[ 1 ];
var c = data[ 2 ];
console.log( a );
console.log( b );
console.log( c );

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

const data = [ 1, 2, 3 ];
const [ a, b, c ] = data;
console.log( a );
console.log( b );
console.log( c );

Если вы заранее не знаете, сколько значений у вас будет внутри данных, лучше просто продолжать работать со всем массивом данных, так как преобразование данныхможет быть сделано с помощью array.map (), array.forEach () и т. д.

0 голосов
/ 12 декабря 2018

Цикл создаст новые имена переменных во время выполнения (varName1, varName2, varName3 ...).Я объединяю индекс i с varName для уникальных имен переменных (мне кажется логичным, потому что индекс - это единственное значение, изменяющееся в цикле).

В результате вы получите n новых переменных(в зависимости от размера вашего массива данных) с соответствующими значениями.

var CampAdGR = ss.getRange("A9").getValue();
var data = ss.getRange("A23:A").getValues();

for (var i = 0; i < data.length; i++) {
    if (data[i][0] == CampAdGR) {
        var varName = varName.concat('aName' + data[i]);
    }
}
0 голосов
/ 12 декабря 2018

Вы можете объявить другую переменную, обычно массив, и использовать ее в качестве хранилища.

var CampAdGR = ss.getRange("A9").getValue();
var data = ss.getRange("A23:A").getValues();
var storage = [];

for (var i = 0; i < data.length; i++) {
    if (data[i][0] == CampAdGR) {
        storage.push(data[i]);
    }
}

storage.map( storedValue => {
   console.log(storedValue);
});

Если вам нужно 3 разных хранилища, объявите 3 переменные или сохраните их в одном объекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...