Uncaught (в обещании) Ошибка: строка 1 имеет 42 столбца, но должна иметь 2 - PullRequest
1 голос
/ 20 апреля 2020

Я использую гистограммы Google для своего проекта и создаю функцию ajax для загрузки диаграмм с данными. Но когда я использую jquery каждую функцию для создания панелей данных в гугл-диаграммах, она получает ошибку, называемую Uncaught (in promise) Error: Row 1 has 42 columns, but must have 2. Может ли кто-нибудь показать мне ошибку в моем коде

Это код моей диаграммы

//chart 2
google.charts.load('current', {
  'packages': ['bar']
});
google.charts.setOnLoadCallback(drawChart1);

function drawChart1() {
  var dataa1 = google.visualization.arrayToDataTable([
    ['DS Division', 'No of Youths'],
    $.each(data.locations, function(index, value3) {
      ['' + value3.DSD_Name + '', value3.total]

    }),

  ]);

  var options1 = {
    chart: {

    },
    bars: 'horizontal', // Required for Material Bar Charts.

    legend: {
      position: 'none'
    },
  };

  var chart1 = new google.charts.Bar(document.getElementById('barchart_material'));

  chart1.draw(dataa1, google.charts.Bar.convertOptions(options1));
}

Это мои данные ответа от контроллера

return response() => json(array(
  'male' => $male,
  'female' => $female,
  'locations' => $locations,
  'salary1' => $salary1,
  'salary2' => $salary2,
  'salary3' => $salary3,
  'salary4' => $salary4,
  'salary5' => $salary5,
  'salary6' => $salary6,
  'employers' => $employers
));

Пожалуйста помогите мне справиться с этим

Спасибо

1 Ответ

1 голос
/ 20 апреля 2020

вместо попытки l oop в объявлении массива,
используйте l oop для добавления значений в массив ...

var chartData = [
  ['DS Division', 'No of Youths'],
];

$.each(data.locations, function(index, value3) {
  chartData.push([value3.DSD_Name, value3.total]);
});

var dataa1 = google.visualization.arrayToDataTable(chartData);
...