数组值未定义...如何测试

时间:2017-09-12 15:45:47

标签: arrays reactjs undefined

Javascript array value is undefined ... how do I test for that

How to check a not-defined variable in JavaScript

就我而言,这些都是错误的:

我只能得到: error

尝试:

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”来获取一个对象)但是它有点怪异。

2 个答案:

答案 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]undefinednull,则您的代码不会中断。