2017-03-08 8 views
0

配列内の長い範囲の変数を参照する方法が不思議でした。配列内の長い範囲の変数を参照してください

私はCheck1、Check2、Check3というフィールドを60個まで持っています。私はCheck1-Check60の範囲を参照したいと思います。

//Do I have to mention ALL the 60 fields here? 
var fieldsToValidate = ["Check1", "Check2", "Check3", "Check4", "Check5", "Check6", "Check7"]; 

これを書くにはクリーナー/短い方法がありますか?

編集:

私はAcrobatのJavaScriptを使用しています言及を忘れ、ここに抜粋だ:

//Do I have to mention ALL the 60 fields here? 
 
var fieldsToValidate = ["Check1", "Check2", "Check3", "Check4", "Check5", "Check6", "Check7"]; //etc. 
 
var emptyFields = []; 
 
for (var i in fieldsToValidate) { 
 
    var f = this.getField(fieldsToValidate[i]); 
 
    if (f.valueAsString==f.defaultValue) { 
 
     emptyFields.push(f.name); 
 
    } 
 
} 
 
    
 
if (emptyFields.length>0) { 
 
    app.alert("Error! You must fill in all required Fields:\n" + emptyFields.join("\n")); 
 
} else { 
 
    this.getField("Signature1").display = display.visible; 
 
}

+0

あなたは配列の各要素に 'refer'に持っていると言うとき、あなたは何を意味するのですか?あなたはどんな種類のバリデーションをしていますか?もしそうなら、あなたの目標は何ですか? –

+0

配列の範囲を参照するには、 'fieldsToValidate.slice(0,60)'のようにスライスするだけで、0(両端を含む)から始まる項目の一部を持つ 'fieldsToValidate'配列の浅いスライスを返します60(排他的)。 – Redu

答えて

0

nがある場合、すべてのフィールドは、単にCheck[n]ようにしている場合1をインクリメントします。次の操作を実行できます。

var fieldsToValidate = [] 
 

 
for (let i = 1; i <= 60; i++) { 
 
    fieldsToValidate.push("Check" + i); 
 
} 
 

 
console.log(fieldsToValidate);
発電機の使用

0

console.log([...function*(n) { 
 
    for (let i = 0; i < n; i++) yield `Check${i + 1}`; 
 
}(60)]);

0

この方法は、私の作品は、ありがとう!

var fieldsToValidate = [] 
 

 
for (let i = 1; i <= 60; i++) { 
 
    fieldsToValidate.push("Check" + i); 
 
} 
 

 
console.log(fieldsToValidate);

関連する問題