我在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]);
}
}
但是,这仅检查空项目,但无法显示它们。
答案 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");
}
}
答案 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);
}
}