javascript typeof null 没有按预期工作
Posted
技术标签:
【中文标题】javascript typeof null 没有按预期工作【英文标题】:javascript typeof null isnt working as expected 【发布时间】:2020-11-25 23:07:11 【问题描述】:我有一个对象对象,其中每个对象都有一个键和一个数组作为值。这就是我所拥有的image。我在每个数组中有一些值小于x
元素的数组(在本例中为20
),所以我编写了这段代码来用零填充我的数组。这是我的代码image 的输出。但是,如您所见,当数组仅包含 null
值时,代码不起作用。这让我耽误了一段时间。
这是我的代码:
let results[tab] =
"Capital Cost ($)": [-2176346066.1517634],
"Electricity Revenue ($)":
[25128866.14469719, 34695653.93022109, 42581870.9302151, 48994313.58438795],
"Net Present Value ($)": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
const maxLength = Object.values(results[tab]).map( x => x.map( x=> x === null ? 0 : x))
.reduce( (acc, item) => Math.max(acc, item.length), 0);
const new_values = Object.values(results[tab]).map( value => value.concat(Array(maxLength - value.length).fill(0)));
const keys = Object.keys(results[tab]);
var toObj = (ks, vs) => ks.reduce((o,k,i)=> o[k] = vs[i]; return o;, );
const new_results = toObj(keys, new_values);
console.log(new_results)
解决方案:原来map
没有应用新条件。解决了!
【问题讨论】:
typeof
总是返回一个字符串,所以它永远不会是null
。
请正确格式化代码。不要指望任何人在当前状态下阅读它。
我会帮忙,但我不会重新格式化代码,如果你想检查 null,只需执行 if (something === null) 或 if (!something)
不能设置const results[tab]
,只能这样说const results =[]; let tab =1; results[tab] = ...
。
@Sascha 只是给个提示,谢谢
【参考方案1】:
x 的类型永远不能为 null,因为 null 是一个值而不是一个类型。甚至 null 的类型也是对象。所以你的代码中不需要 typeof。
【讨论】:
赞成,但也请添加正确的代码 (x === null
)
js背景差,试过了还是不行!相同的输出以上是关于javascript typeof null 没有按预期工作的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript-Runoob:JavaScript typeof, null, undefined
JavaScript typeof, null, 和 undefined
JavaScript typeof, null, 和 undefined
JavaScript typeof, null, 和 undefined