我有这个"型号"在TypeScript 2中:
export class MyModel {
myProperty1: string;
myProperty2: string;
...
}
我也有这个课程:
// Leaving out the imports
@Component
...
export class MyClass {
private myArray: Array<MyModel>;
ngOnInit() {
this.myArray = ...// calls a service which returns a populated array of MyModel objects;
}
ngAfterViewInit() {
var newArray: Array<string> = this.myArray ??? // take only myProperty1 from myArray objects and assign to newArray
}
}
如何只在myArray中使用myProperty1并分配给我的新字符串数组?
因此,如果myArray包含两个MyModel类型的元素:
[{"one", "apple"}, {"two", "oranges"}]
然后newArray应该最终包含string这两个元素:
["one", "two"]
答案 0 :(得分:5)
使用 map() 函数。在这种情况下,它会获取数组中的每个项目,并返回一个属性数组,您可以选择它们。在我的例子中是一个prop1
的数组。
const arrays = [{prop1: "one", prop2: "apple"}, { prop1: "two", prop2: "oranges"}];
const newArr = arrays.map(item => item.prop1);
console.log(newArr);
答案 1 :(得分:3)
使用Array.map,它通过处理每个元素来创建一个新数组。
this.myArray.map(o => o.myProperty1)