Я пытаюсь отобразить некоторые данные с использованием ресурсов Google для составления диаграмм. Он хочет получить данные в определенном формате, например:
var data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540]
]);
Из того, что я могу сказать, он хочет, чтобы первая серия содержала ось "x", за которой следовало любое количество элементов, представляющих точки данных оси y.
Мои данные поступают из моего back-end следующим образом:
Обновление (код для получения данных диаграммы):
function GetChartData(ni, dn, cn) {
$.ajax({
url: '/Dashboard?handler=QualityTests' + '&NodeId=' + ni + '&DomainName=' + dn + '&ComputerName=' + cn,
success: function (json) {
google.charts.setOnLoadCallback(drawChart(json))
}
})
}
Я хочу averageJitterInMs
только averageJitterInMs
для оси x и dateTime
для оси y на данный момент (в конечном итоге я буду использовать остальную часть данных в другом месте на странице, возможно, для других диаграмм).
Итак, есть ли элегантный способ вытащить только эти значения из моего массива (потенциально сотни элементов массива), чтобы он мог подавать требования к данным диаграммы Google? Под этим я подразумеваю, как мне получить две пары ключ/значение из массива JavaScript, чтобы я мог поместить его в правильном формате, который хочет использовать ресурс диаграммы (см. Прикрепленное изображение)?
Я попытался зациклить массив на стороне клиента, чтобы вытащить эти две пары ключ/значение, однако диаграмма api Google дает мне ошибку:
Не массив
Это даже необходимо или я могу каким-то образом захватить пары ключ/значение программным способом для подачи метода arrayToDataTable
?
Вы можете построить любой массив из того, что у вас есть. Я сделал фиктивные данные, чтобы показать вам, как вы могли бы достичь того, чего хотите.
Здесь у нас есть array
с двумя параметрами, которые мы хотим выбрать (value1, value2).
Затем мы делаем карту над массивом и присваиваем результат resultArray
.
На карте мы извлекаем value1
и value2
из каждого элемента, используя деструктурирование ES6.
Теперь у нас есть массив массивов.
const array = [
{
value1: 'sadfsadf',
value2: 'asdasdas',
extra: 123123
},
{
value1: 'sadfasfsadsadf',
value2: 'asdasdas',
extra: 123123123
},
{
value1: 'eg',
value2: 'asdssdas',
extra: 124
},
{
value1: 'sadfsadf',
value2: 'sd',
extra: 123123
},
{
value1: 'sf',
value2: 'sf',
extra: 123123
}
];
let resultArray = array.map(e => {
let {value1, value2} = e;
return [value1, value2];
});
console.log(resultArray);
+
. Т.е. +'123' === 123
.
myArray[0]
. Покажите нам код, который вы пытаетесь использовать