关于reactjs:数组值未定义…我该如何测试

array value is undefined … how do I test for that

未定义javascript数组值…我怎么测试这个呢

如何在javascript中检查未定义的变量

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

我只得到:error

当试图:

1
2
3
4
5
6
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');

但这(条目存在)很好:

1
2
3
4
5
6
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.length,然后在"for"循环中对照它检查增量,以允许或不允许根据具体情况修改数组条目。

你不能问JS一个不存在的数组索引的变量是否存在,这真的很烦人。

这看起来很简单:不能指向索引吗?那么不,不,这个变量和其他变量都不存在于这个索引中。结束。

JS的人肯定应该写一个便条来添加像这样简单的东西。

我很想发布我的代码,因为我有一些东西可以让我做我想做的事情(调用一个有很多未定义的索引,用"s"来代替对象),但这有点可怕。


你应该这样做:

1
2
3
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的话,代码就不会被破坏。


首先检查索引(例如:console.log(!您的rarray[x]),然后根据测试是否通过,访问/添加所需的索引/属性。