array value is undefined … how do I test for that
未定义javascript数组值…我怎么测试这个呢
和
如何在javascript中检查未定义的变量
就我而言,这些是错误的:
我只得到:
当试图:
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'); |
我刚加了支票。因此,如果
首先检查索引(例如:console.log(!您的rarray[x]),然后根据测试是否通过,访问/添加所需的索引/属性。