如何找到空的变量并显示它

时间:2014-02-25 16:15:10

标签: javascript html

我在JavaScript中有三个变量a,b和c,其中一个是null。我如何找到它是哪一个,然后在没有if语句的情况下显示它,因为我可能没有3个甚至300个变量。我试图使用循环,但没有运气。提前致谢。 我的代码使用的是数组;

var x = [a,b,c];
for (i = 0; i < x.length; i++){
    if (x[0] == null){
        alert(x[0]);
    }
}

但是,这仅检查空项目,但无法显示它们。

6 个答案:

答案 0 :(得分:1)

试试这个:

    var x = ['a', 'b', null];
    var i = x.indexOf(null);
    alert(i);

适用于vars:

    var a = 'foo';
    var b = 'bar';
    var c = null;
    var x = [a, b, c];
    var i = x.indexOf(null);
    alert(i);

答案 1 :(得分:0)

尝试将变量保存在数组中并迭代每个元素并检查它是否为null:

var arr = [];
var obj1 = 'davies';
var obj2 = 'darren';
var obj3 = null;

arr.push(obj1);
arr.push(obj2);
arr.push(obj3);

for (var i =0; i<arr.length; i++) {
    if (arr[i] == null) {
       alert("index " + i + " is null");   
    }
}

http://jsfiddle.net/75Xwh/

答案 2 :(得分:0)

使用数组:

正如somone建议您可以使用数组,存储值如下:

var values = [1, 2, 3, 4];

您可以像这样访问值:

values[0]; // equals 1
values[3]; // equals 4

像这样循环遍历:

for(var i = 0; i < values.length; i++) {
    console.log(values[i]);
}

Outputs:
    1
    2
    3
    4

使用对象:

如果是我,我会使用一个对象,而不是通过名称(属性)而不是仅通过索引来引用对象值。当然,对象并不是适合每项工作的正确工具,但根据您的模糊描述,它听起来就像您需要的那样。

像这样创建一个对象:

var someObj = {
    firstValue: 1,
    secondValue: 2,
    anotherValue: 3
};

可以像这样访问值:

someObj.firstValue; // equals 1

或:

someObj['anotherValue']; // equals 3

可以像这样循环:

for(var ind in someObj) {
    console.log(someObj[ind]);
}

Outputs:
    1
    2
    3

希望有所帮助。

答案 3 :(得分:0)

假设您出于某种奇怪的原因无法使用数组或对象。

function findNull(){
    for (var i=0; i<arguments.length;i++){
        if (arguments[i]===null) {
           return i;
        }
    }
}

如果你这样称呼它:

findNull(a,b,c,d,e,f,g);

和d为null,你知道你只有一个null,它将返回3,因为那是它发送的索引。

编辑:

响应您的修改:

尝试

x = {"a":a; "b":b; "c":c};
// you can add more values like this
x["d"]=d;
for (var i in x){
    if (x[i]===null){
       alert (i);
    }
}

它将提醒密钥的名称(如果b为null,则会提示b)

答案 4 :(得分:0)

很难确切地知道你在寻找什么 - 但也许就是这个......

var x = [a,b,c];
for(i=0;i<x.length;i++){
    // reference the `i`th item rather than the 0th item each time
    if (x[i] == null){
        alert(x[i]);
    }
}
也许你正试图避免......

if (x[0] == null){
    alert(x[0]);
}
if (x[1] == null){
    alert(x[1]);
}
...

答案 5 :(得分:0)

您可能应该使用对象的属性而不是数组中的局部变量。

var x = {
    a: 23,
    b: null,
    c: 26
}

// your code can work with these values by doing 
// e.g. x.a++ instead of a++

for (var key in x) {
    if (x[key] === null) {
        alert(key);
    }
}