将数组转换为打字稿中提供的对象定义

时间:2019-10-09 07:38:11

标签: typescript mapping angular8

我正在使用angular 8,并希望按提供的对象键转换我的数据数组。 这是我的逻辑,并且工作正常。.有什么短的方法吗?

// --- some.service.ts ---

// Map object (or array) having object with so many keys and reduce it to provided format i.e. newDefinition
  reduceObjectOrArray(data: any, newDefinition: any): any {
    const isDataArray = Array.isArray(data);
    data = isDataArray ? data : [data];
    const resData: any[] = [];
    data.forEach(item => {
      const obj: any = {};
      newDefinition.forEach(dataKey => {
        if (newDefinition.indexOf(dataKey) !== -1) {
          obj[dataKey] = item[dataKey];
        }
      });
      resData.push(obj);
    });
    return isDataArray ? resData : resData[0];
  }
// Convert Data
reduceObjectOrArray() {
    console.log(this.some.reduceObjectOrArray([
      { Key1: '1', Key2: '2', Key3: '5' },
      { Key1: '2', Key2: '3', Key3: '6' },
      { Key1: '3', Key2: '4', Key3: '7' }
    ], ['Key1', 'Key3']));
  }

0 个答案:

没有答案