我想下面的代碼:的JavaScript檢查多個變量爲空
var var1 = "";
var var2 = "test";
var var3 = "";
vars = new Array('var1','var2','var3');
var count = 0;
for (var i = 0; i < vars.length; ++i) {
var name = vars[i];
if (field_is_empty(name)) {
count++;
}
}
console.log(count);
function field_is_empty(sValue) {
if (sValue == "" || sValue == null || sValue == "undefined")
{
return true;
}
return false;
}
這裏的結果應該是count = 2
,因爲兩個變量都是空的,但它總是0
。我猜測它在使用if (field_is_empty(name))
時必定會出現某種情況,因爲它可能不會將名稱轉換爲實際變量的名稱。
問題2#儘管如此相關
爲KARTHIK甘尼申提到我已經更新了代碼,它完美的作品。
現在的代碼是:
var var1 = "";
var var2 = "test";
var var3 = "";
vars = new Array(var1,var2,var3);
var count = 0;
for (var i = 0; i < vars.length; ++i) {
var name = vars[i];
if (field_is_empty(name)) {
count++;
}
}
console.log(count);
function field_is_empty(sValue) {
if (sValue == "" || sValue == null || sValue == "undefined")
{
return true;
}
return false;
}
而且問題是,如果添加一個新的if語句是這樣的:
if (count == '3') {
console.log('AllAreEmpty');
} else {
for (var i = 0; i < vars.length; ++i) {
var name = vars[i];
if (field_is_empty(name)) {
//Set the empty variables as "1900-01-01"
variableService.setValue(name,"test");
}
}
}
它什麼都不做,我已經測試使用variableService.setValue('var1',"test")
,它作品。
PS:variableService.setValue是一個由軟件控制的函數,我不知道它究竟幹了什麼,我知道如果像上面提到的那樣使用它,它就會起作用。
這是因爲你沒有傳遞每個變量的內容,而是它的名字。例如,你正在做'field_is_empty('var1')',而不是'field_is_empty(「」)'。你只需要從你的數組中刪除引號。 – Santi
你沒有正確地把你的變量放到你的數組中。仔細看看你在做什麼,這是一個變量名稱的字符串,而不是變量本身。刪除初學者的報價。 – Slime
使用:'vars = new Array(var1,var2,var3);'。 –