2016-10-23 48 views
0

我使用下面的代碼來檢查是否存在var1,然後分配另一個變量(promt)來存儲var1,前提是用戶鍵入變量。問題是,我有大約二十變量,我需要檢查,所以我的代碼看起來像下面的十倍:檢查[變量名稱] + [數字]是否存在?

if (typeof var1 !== 'undefined') { 
     if(selection==var1){ 
      var promt = var1; 
     }   
    } 
    if (typeof var2 !== 'undefined') { 
     if(selection==var2){ 
      var promt = var2; 
     }   
    } 

本(一),使一噸的低效代碼及(b)如果我有超過20個可能導致錯誤變量。
有沒有辦法檢查var1,var2,var3等是否存在,然後停止檢查變量何時停止?
目標是能夠有一百個變量,並且如果有兩個變量,仍然具有相同數量的代碼。

+6

使用數組... –

+0

使用正則表達式 – Aravind

+0

要添加,您可能需要遍歷該數組並檢查其是否真實,然後相應地指定 – Li357

回答

3

如果你的變量是一個對象字段,你可以很容易地動態生成的字段名稱:

fieldname = 'var' + index; 
if (typeof obj[fieldname] !== 'undefined') { 
    if (selection == obj[fieldname]){ 
     var promt = obj[fieldname]; 
    }   
} 

局部變量然而,我不能提供一個解決方案。

0

第一件事,第一var是在JavaScript 保留字,所以你不能用它作爲變量名,所以我用_var這裏來代替。

我做了這個解決方案jsFiddle,所以請檢查出來。

你也可以看看下面的代碼:

for (i in _var) { 
    // Loop through all values in var 
    if ((typeof _var [i] !== undefined) && 
    selection_array.indexOf(_var [i]) >= 0) { 
    // note that array.indexOf returns -1 if selection_array does not contain var [i] 
     prompt = _var[i]; // use this if you only want last var[i] satisifying the condition to be stored 
    prompt_array.push(_var[i]);// use this if you want to store all satisifying values of var[i] 
    } 
} 

還要檢查下面的代碼片段

// Lets declare and give some example value to _var, Note that you cannot use var as variable name as it is a reserver word in javascript 
 
var _var = ['foo1', 'foo2', 'foo3', 'foo4']; 
 

 
// Declare a variable called prompt (actually not necessary normally) 
 
var prompt; 
 

 
// Declare a array called prompt_array to store the output 
 
var prompt_array = []; 
 

 
// Declare and give some example value to selection_array 
 
var selection_array = ['foo2', 'foo3']; 
 

 
// main program to solve the problem 
 
for (i in _var) { 
 
    // Loop through all values in var 
 
    if ((typeof _var [i] !== undefined) && 
 
    selection_array.indexOf(_var [i]) >= 0) { 
 
    // note that array.indexOf returns -1 if selection_array does not contain var [i] 
 
\t \t prompt = _var[i]; // use this if you only want last var[i] satisifying the condition to be stored 
 
    prompt_array.push(_var[i]);// use this if you want to store all satisifying values of var[i] 
 
    } 
 
} 
 

 
// output for visualizing the result 
 
document.getElementById('output').innerHTML += 'prompt = ' + prompt + '<br/>'; 
 
document.getElementById('output').innerHTML += 'prompt_array = ' + prompt_array.toString();
<div id="output"> 
 

 
</div>

你可以問我通過評論,如果您有進一步的問題對此:D。

相關問題