* javascript *将所有for循环值提取为不同的变量

时间:2018-12-12 13:00:16

标签: javascript for-loop google-apps-script

新手问题:

我在代码中使用了一个简单的for循环。假设这将返回a,b和c的3个正值。我想要的是将所有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 :(得分:1)

如果您有一个值数组,则可以分别声明变量:

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()等。

答案 1 :(得分:0)

您可以声明一个不同的变量(通常是数组)并将其用作存储。

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个变量或将它们保存在单个对象中。

答案 2 :(得分:0)

循环将在运行时创建新的变量名称(varName1,varName2,varName3 ...)。 我将索引ivarName连接起来,以获得唯一的变量名(在我看来,这是合乎逻辑的,因为索引是整个循环中唯一更改的值)。

输出将为您提供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]);
    }
}