【问题标题】:In Typescript 2 how can I take single property from array of objects and assign to new array?在 Typescript 2 中,如何从对象数组中获取单个属性并分配给新数组?
【发布时间】:2017-07-04 06:43:12
【问题描述】:

我在 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 最终应该包含这两个字符串类型的元素:

["one", "two"]

【问题讨论】:

    标签: javascript arrays angular typescript typescript2.0


    【解决方案1】:

    使用 map() 函数。在这种情况下,它会获取数组中的每个项目,然后返回一个属性数组,您可以选择该数组。在我的情况下,prop1 的数组。

    const arrays = [{prop1: "one", prop2: "apple"}, { prop1: "two", prop2: "oranges"}];
    
    const newArr = arrays.map(item => item.prop1);
    console.log(newArr);
       

    【讨论】:

    • "返回一个属性数组,你选择的"不是很准确,它不返回一个属性数组,它返回一个数组,其中每个项目已经通过从回调函数返回映射到您想要的任何值。
    【解决方案2】:

    使用Array.map,它通过处理每个元素创建一个新数组。

    this.myArray.map(o => o.myProperty1)
    

    【讨论】:

      猜你喜欢
      • 2019-07-04
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多