javascript - 如何使用插值访问数组索引?
问题描述
我想使用插值来访问数组索引处的特定项目,但它给了我这个错误:“TypeError:无法设置未定义的属性'0'。”
当数组未定义时会发生这种情况,但我已经在构造函数中定义了它。
- parsedData 看起来像
[
{
"studyID": "12345",
"date": "Thu Jul 18 2019 16:05:58 GMT-0700",
"sex": "f",
"dateOfBirth": "1987-01-02",
"minHz": "25.0",
"maxHz": "55.0",
"session": [
{
"incr": "33.2",
"decr": "34.7"
},
{
"incr": "34.0",
"decr": "30.8"
}
],
"average": "31.5",
"variance": "2.3"
},
但已被字符串化并解析为对象。
- 我有一个名为 dateObjects 的数组,它应该存储日期。例如,new Date('Thu Jul 18 2019 16:05:58 GMT-0700') 将位于索引 0。这发生在迭代中。
for (var i = 0; i < this.parsedData.length; i++) {
this.dateObjects[i] = new Date(this.parsedData[i].date);
}
- 我的 HTML 代码:
<div class="table" *ngFor="let data of parsedData; index as i">
Date: {{ this.dateObjects[i] | date:'fullDate'}}
</div>
我希望它打印出 dateObjects 数组中的日期,但它会导致错误:TypeError: Cannot set property '0' of undefined。
解决方案
因为您已经在遍历 parsedData 并将它们存储在数组(dataObjects)中,所以我认为您应该在 HTML 中遍历 dataObjects 而不是 parsedData
<div class="table" *ngFor="let data of this.dataObjects; index as i">
Date: {{ data | date:'fullDate'}} // here data will be your each array element
</div>
推荐阅读
- java - javax.el.PropertyNotFoundException:在带有 Lombok @Data 的 edu.bsu.Country 类型上找不到属性“货币”
- r - 如何将此嵌套的 for 循环转换为 purrr 函数
- php - 如何在 preUpdate 中取消属性更新
- javascript - 等待由 .fetch()、.all() 和 .() 组成的承诺链中的结果然后
- python - 我无法使用 matplotlib.animation 看到动画
- react-bootstrap - 我应该如何管理它们,以便它们以相等的间距并排出现?
- php - laravel livewire 阅读会话消息抛出 TypeError: Cannot read property 'fingerprint' of null
- c# - 为什么在使用视图模型 (MVC) 时我的 ModelState 没有在控制器中更新?
- c++ - 为什么这个 anagram 代码不能只为 ravi 和 vira 提供正确的结果?
- c - 此功能运行多少次?