Angular 4中无法访问数组对象的string4属性,求解决方法
解决数组对象属性访问问题
嘿,我看到你遇到的问题了——问题出在你对数组和对象的访问方式搞错啦!
你的data是一个数组,里面包含了一个对象元素,而this.data.values并不是获取数组元素的正确方式:values()是数组的内置方法,返回的是一个迭代器对象,不是数组里的具体元素,所以你没法通过它直接访问string4属性。
正确的获取方式
因为你的数组里只有一个对象元素,直接通过数组索引获取第一个元素,再访问它的属性即可:
- 点语法(更直观):
this.data[0].string4 - 方括号语法:
this.data[0]['string4']
修正后的代码
export class DataComponent { mystring: string = ''; constructor(private myService: myService) {} data = [ { string1: '', string2: '', string3: '', string4: '' } ]; consumefunction() { // 替换成正确的属性访问方式 this.mystring = this.data[0].string4; this.myService.anotherfunc(this.mystring); } }
额外建议(针对多元素场景)
如果以后你的data数组里有多个对象,需要找到特定的对象再获取string4,可以用数组的find方法来保证代码健壮性:
// 找到存在string4属性的对象(根据你的需求调整条件) const targetItem = this.data.find(item => item.string4 !== undefined); this.mystring = targetItem?.string4 || ''; // 可选链+默认值避免报错
内容的提问来源于stack exchange,提问作者Steffn
相关产品推荐
相关产品推荐

