Javascript array value is undefined ... how do I test for that
和
How to check a not-defined variable in JavaScript
就我而言,这些都是错误的:
尝试:
console.log(!fromToParameters[7].value.firstInput);
console.log(!!fromToParameters[7].value.firstInput);
console.log(fromToParameters[7].value.firstInput === undefined);
console.log(typeof fromToParameters[7].value.firstInput == 'undefined');
console.log(fromToParameters[7].value.firstInput !== undefined);
console.log(typeof fromToParameters[7].value.firstInput != 'undefined');
但是这个(条目存在)工作正常:
console.log(!fromToParameters[0].value.firstInput);
console.log(!!fromToParameters[0].value.firstInput);
console.log(fromToParameters[0].value.firstInput === undefined);
console.log(typeof fromToParameters[0].value.firstInput == 'undefined');
console.log(fromToParameters[0].value.firstInput !== undefined);
console.log(typeof fromToParameters[0].value.firstInput != 'undefined');
假 真正 假 真正 假 真
这是一个与js不同的反应问题吗?为什么我不能像在这些stackoverflow线程中那样做?
更新:
所以你根本不能指出一个缺少的数组元素。
检查以下答案。
我想我将使用存储在const中的array.lenght,然后在我的“for”循环中检查我的增量,以允许或禁止在个案的基础上修改我的数组条目。 / p>
真的很烦人的是,你不能只是问js是否存在一个不存在的数组索引。
看起来这似乎是直截了当的东西:不能指向索引?那就不要。不,此索引中不存在此变量或任何其他变量。结束。js的家伙肯定应该添加一些简单的注释。
我很想发布我的代码,因为我有一些东西允许我做我想做的事情(调用一个包含大量未定义的索引并用“s”来获取一个对象)但是它有点怪异。
答案 0 :(得分:1)
首先检查索引(例如:console.log(!yourArray [x]),然后根据该测试的通过或失败,访问/添加所需的索引/属性。
答案 1 :(得分:1)
你应该这样做:
console.log(fromToParameters[7] && fromToParameters[7].value.firstInput);
console.log(!!fromToParameters[7] && fromToParameters[7].value.firstInput);
console.log( fromToParameters[7]&& typeof fromToParameters[7].value.firstInput == 'undefined');
我刚刚添加了支票。因此,如果fromToParameters[7]
为undefined
或null
,则您的代码不会中断。