首页 > 解决方案 > 如何从对象中检索值以将其放入数组中

问题描述

几个小时以来,我一直在试图弄清楚如何在 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

标签: javascriptangulartypescript

解决方案


看起来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,SetDate被认为是特殊类型并且对语句 成立typeof instance === "object"。更多信息在这里


推荐阅读