javascript - 使用未定义字段映射数组
问题描述
我正在实现一个哈希表,其中一些字段显然未定义,因为它们尚未被填充。
我还想显示哈希表的每个字段。但是,当我通过数组映射时,该函数仅返回未定义字段的 div,无法弄清楚如何强制映射函数为未定义字段显示 Empty。
现在看起来像这样:
const displayTable = () => {
return storage.map(item => {
if (item == null) {
return <div>undefined</div>
}
return (
<div>
<p>{item[0][0]}</p>
</div>
);
});
随着存储[undefined, undefined, undefined, Array[1], undefined, Array[1], undefined, undefined, undefined, Array[1]]
因此,我最终只得到了三个渲染的 div。
解决方案
在 Javascript 中,undefined
和未定义不是一回事,尽管尝试访问对象的未定义属性将返回值undefined
。考虑到 JS 也有null
,我认为这是 JS 最混乱的事情之一。
您可以通过在开始填充数组之前填充数组来解决您的问题:
storage.fill(null)
(请注意,storage.fill(undefined)
这也可以!Javascript 不是很棒吗?:p)
当然,这仅在数组具有静态已知长度时才有效。如果长度是动态的,则必须执行以下操作:
const displayTable = () => {
const rendered = [];
for (let i = 0; i < storage.length; i++) {
if (storage[i] == null) {
rendered.push(<div>undefined</div>);
} else {
rendered.push(
<div>
<p>{storage[i][0][0]}</p>
</div>
);
}
}
return rendered;
}
推荐阅读
- python - 如何在 Django 中修复“以 10 为基数的 int() 的无效文字”
- ios - ios swift tableview不显示自定义单元格
- c# - 在 UWP 中,WPF 的 DependencyProperty 类的 DependencyType 属性等价于什么?
- jupyter-notebook - 将十六进制代码从 TIFF 转换为可读格式
- java - 用于休眠 crud 操作的 Junit 测试
- javascript - 如何获取 HTML5 输入字段的“字符移动距离”
- google-apps-script - AppsScript - 如何将项目的输出(错误率、执行、用户)导入 Googlesheet
- mysql - 3个表之间的快速查询mysql
- bash - 将日期字符串转换为日期纪元 UNIX AIX
- python - 数组的最内维