【问题标题】:Convert Array of Arrays into array of objects将数组数组转换为对象数组
【发布时间】:2018-11-08 17:10:36
【问题描述】:

我有一个Angular 应用程序,其中有一个array 数组,如下所示。

array1 = [{'1', 'Tom'},{'2','Rob'}].

我需要将其转换为:

array2 = [{'id':'1','name':'Tom', 'city':'ny'}, 
          {'id':'2','name':'Rob', 'city':'dc'}]

export class TempObject {
  constructor(public id: string, 
              public name: string, 
              public city: string) {
  }
}

请查看对象类有另一个属性 city 不属于 array1。 我们应该只循环array1 并创建TempObject 的实例还是有任何最简单的方法?

【问题讨论】:

  • {'1', 'Tom'} 不是有效的 JS
  • 也许你写array1是个错误,但是你可以用.map来做到这一点

标签: arrays angular typescript object


【解决方案1】:

我已将您的起点调整为数组数组,因为您的问题表明这是您必须开始的。请记住,city 不在该数组中,因此您必须决定如何处理。

const array1 = [['1', 'Tom'], ['2', 'Rob']];

class TempObject {
  constructor(public id: string, 
              public name: string, 
              public city: string = '') {
  }
}

const array2 = array1.map((val, idx) => new TempObject(val[0], val[1]));

console.log(JSON.stringify(array2));

【讨论】:

    猜你喜欢
    • 2018-10-13
    • 2019-04-13
    • 2021-05-03
    • 2018-12-04
    • 2021-06-16
    相关资源
    最近更新 更多