如何从对象检索值以将其放入数组

时间:2020-08-25 13:53:13

标签: javascript angular typescript

几个小时以来,我一直在尝试找出如何在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"]

如果这个问题确实很基本,对不起。

P.S:我正在运行Angular 10.0.7和TypeScript 3.9.7

2 个答案:

答案 0 :(得分:0)

看来Fruits是一个数组。您可以使用数组map函数从对象元素中获取单个属性作为数组。

尝试以下

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中,类ObjectArrayMapSetWeakMapSet和{{1} }被视为特殊类型,并且对于语句Date成立。更多信息here

答案 1 :(得分:0)

这是工作示例:

const arr = [{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"}];

const result = arr.map((item) => item.item_text);

console.log(result);