Свойство 'map' не существует для типа 'Object' Angular - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть код в моем dashboard.component.ts, например:

this.scheduleService.getShiftSchedule().subscribe((temp)=>{
  this.api = temp;
  var ids = [['user_id', 1], ['status', 2]],
  result = temp.map(o => ids.map(([key, id]) => ({ id, content: o[key] })));
  this.tablePresetData = result;
})

и библиотека импорта:

import { Component, OnInit, ViewEncapsulation, ViewChild } from '@angular/core';
import { TicketService } from '../../ticket.service';
import { ScheduleService } from '../../schedule.service';
import {Chart} from 'chart.js';
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { map, filter, switchMap } from 'rxjs/operators';

enter image description here

Были ли какие-либо ошибки, которые я допустил при написании этого кода?или я просто что-то забыл?

1 Ответ

0 голосов
/ 11 февраля 2019

native map существует только в массиве.Если вы хотите использовать карту для объекта, вы можете использовать lodash;

, поэтому, если вы используете lodash

import { map } from 'lodash';
result = map(temp, o => ids.map(([key, id]) => ({ id, content: o[key] })));

, в противном случае вы должны выполнить цикл по списку ключей объекта, например

result = Object.keys(temp).map(o => ids.map(([key, id]) => ({ id, content: temp[o][key] })));
...