ОШИБКА TypeError: res [0] .price.map не является функцией в ChartJS - PullRequest
0 голосов
/ 23 июня 2018

Я пытаюсь нарисовать график на основе данных об отдыхе, но я получаю эту ошибку

core.js: 1521 ОШИБКА TypeError: res [0] .price.map не является функцией на SafeSubscriber._next (app.component.ts: 26) в

Вот код

import { Component } from '@angular/core';
import { HelperService } from './helper.service';
import {Chart} from 'chart.js';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  chart = [];


  constructor(private _graph:HelperService){

  }

  ngOnInit(){


    this._graph.getGraphData()
        .subscribe(res => {
          console.log(res);

         let stock_price0 = res[0].price.map(res => res[0].price);
         let stock_price1 = res[1].price.map(res => res[1].price);

          let timeloop=[1,2,3,4,5,6];





         this.chart = new Chart('canvas',{
           type:'line',
           data: {
             labels:timeloop,
             datasets: [
               {
                 data:stock_price0,
                 borderColor:'#3cba9f',
                 fill:false
               },
               {
                data:stock_price1,
                borderColor:'#ffcc00',
                fill:false
              }
             ]
           },
           options:{
             legend:{
               display:false
             }
           }
         })

        })
  }
}

Это формат JSON,

[{ "ID": 1, "stockName": "А", "цена": 5, "кол-во": 10, "сектор": "Финансы"}, { "ID": 2, "stockName" : "В", "цена": 3, "кол-во": 2, "сектор": "Технология"}, { "идентификатор": 3, "stockName": "С", "цена": 4, "кол-во" : 1, "сектор": "Гоби"}, { "ID": 4, "stockName": "Z", "цена": 2, "кол-во": 5, "сектор": "Финансы"}, {» идентификатор ": 5," stockName ":" J " "цена": 5, "кол-во": 1, "сектор": "Гова"}, { "идентификатор": 6, "stockName": "К"," цена ": 3," кол-во ": 3," сектор ":" Технология "}]

1 Ответ

0 голосов
/ 23 июня 2018

Если вы посмотрите на JSON, res [0] .price не является массивом. это просто поле. Карта работает над массивом. Я думаю, что вам нужно

  let stock_price0 = res[0].price;

EDIT

Я думаю, вам нужны ценовые значения в массив,

Вы можете сделать это,

 let stock_price0 = res[0].map(res => res.price);

DEMO

var myjson = [
  {
    "id": 1,
    "stockName": "A",
    "price": 5,
    "qty": 10,
    "sector": "Finance"
  },
  {
    "id": 2,
    "stockName": "B",
    "price": 3,
    "qty": 2,
    "sector": "Tech"
  },
  {
    "id": 3,
    "stockName": "C",
    "price": 4,
    "qty": 1,
    "sector": "Gov"
  },
  {
    "id": 4,
    "stockName": "Z",
    "price": 2,
    "qty": 5,
    "sector": "Finance"
  },
  {
    "id": 5,
    "stockName": "J",
    "price": 5,
    "qty": 1,
    "sector": "Gov"
  },
  {
    "id": 6,
    "stockName": "K",
    "price": 3,
    "qty": 3,
    "sector": "Tech"
  }
];
var result = myjson.map(a => a.price);
console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...