javascript - 如何从对象中检索值以将其放入数组中
问题描述
几个小时以来,我一直在试图弄清楚如何在 Angular 中获取对象的值。
起初,我认为这不是一个对象,但我跑了这条线,它告诉我:
console.log(typeof(Fruits));
我得到了这个答案:
fruits.component.ts:143 object
所以现在,我确定它是一个对象。我在网上搜索并找到了一些方法来做到这一点:
Object.values(Fruits)
// or
Object.keys(Fruits)
// or
Fruits.item_text
但它没有用(也许我滥用了它们)。
所以我决定直接打印这个对象来看看这个对象上有什么:
console.log(Fruits);
然后我得到了这个:
fruits.component.ts:144 (6) [{…}, {…}, {…}, {…}, {…}, {…}]0: {item_id: 1, item_text: "Banana"}1: {item_id: 2, item_text: "Apple"}2: {item_id: 3, item_text: "Orange"}3: {item_id: 4, item_text: "Pear"}4: {item_id: 5, item_text: "Peach"}5: {item_id: 6, item_text: "Pineapple"}length: 6__proto__: Array(0)
我的目标是获取数组中的每个“item_text”:
["Banana", "Apple", "Orange", "Pear", "Peach", "Pineapple"]
如果这个问题真的很基础,我很抱歉。
PS:我正在运行 Angular 10.0.7 和 TypeScript 3.9.7
解决方案
看起来Fruits
是一个数组。您可以使用 Arraymap
函数从对象元素中获取单个属性作为数组。
尝试以下
fruitNames = [];
...
this.fruitNames = this.Fruits.map(fruit => fruit['item_text']);
let Fruits = [ {item_id: 1, item_text: "Banana"}, {item_id: 2, item_text: "Apple"}, {item_id: 3, item_text: "Orange"}, {item_id: 4, item_text: "Pear"}, {item_id: 5, item_text: "Peach"}, {item_id: 6, item_text: "Pineapple"} ]
let fruitNames = Fruits.map(fruit => fruit['item_text'])
console.log(fruitNames);
为什么typeof(Fruits)
显示object
在 Javascript 中,类的实例Object
, Array
, Map
, Set
, WeakMap
,Set
和Date
被认为是特殊类型并且对语句 成立typeof instance === "object"
。更多信息在这里。
推荐阅读
- mysql - 在 MySQL 中编写触发器时出现语法错误
- google-cloud-platform - GCP 负载平衡器显示“无效指纹”
- php - Laravel 关系不起作用但外键有价值
- c# - 实体框架不加载相关对象
- vba - 在同一行显示两个数字之间的数字
- sql - 在 sql 中使用子查询。显示无输出
- javascript - 在函数中使用 .each() 时,有没有办法避免同时传递 $ 和 $foo ?
- matlab - 交叉验证后如何在 Matlab 中应用学习到的模型
- android - 如何在不使用 OkHttp 自己的字符串方法且不丢失信息的情况下将响应体从 byteArray 转换为字符串?
- html - 在没有可视化问题的情况下无法降低 div 高度