新手问题:
我在代码中使用了一个简单的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*}
谢谢!
答案 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 ...)。
我将索引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]);
}
}