我有一组过滤器对象this.selectedFilters
。
我使用JS map方法仅选择过滤器对象的field
属性。
console.log(this.selectedFilters.map((val) => {
console.log(val);
console.log(val.field);
console.log(val['field']);
return val.field;
}));
结果是:
有人可以告诉我val.field
为什么会给出一个未定义的值? :(
PS:我使用的是TypeScript
更新
我想我知道为什么val
是一个字符串。也许是因为this.selectedFilters
是select
HTML元素的ng模型(多个已启用),其中选项具有对象值。当传输到this.selectedFilters
模型
答案 0 :(得分:1)
最可能的答案是val
是字符串,其中包含您在控制台中看到的JSON。如果它是一个对象,控制台输出看起来会有所不同。
看起来您需要在其中放置JSON.parse
。您还没有显示原始TypeScript,但在JavaScript中它看起来像这样:
console.log(this.selectedFilters.map((val) => {
val = JSON.parse(val); // <====
console.log(val);
console.log(val.field);
console.log(val['field']);
return val.field;
}));