как сформировать свойство функции
Есть свойство функции
data: [ { year: '2008', value: 20 }, { year: '2009', value: 10 }, { year: '2010', value: 5 }, { year: '2011', value: 5 }, { year: '2012', value: 20 } */ ], как его записать в таком виде из следующего массива array? Чтобы получать это свойство динамически? '0' : 'year' => "4" 'value' => "100" '1' : 'year' => "100" 'value' => "200" '2' : 'year' => "8" 'value' => "100" '3' : 'year' => "19" 'value' => "300" |
imedia,
Я в php не силён, но думаю массив нужно пробегать foreach, который будет формировать новый ассоциативный массив и для значений year запускать функцию, которая будет их в года преобразовывать. Только входящий массив странный какой-то, вот это 'year' => "100" в какой год должно преобразоваться? Далее echo json_encode($arr); На клиенте JSON.parse(str) и присобачиваете полученный массив объектов как свойство своей функции. |
это javascript, а вопрос именно в том как присобачить
new Morris.Line({ // ID of the element in which to draw the chart. element: 'myfirstchart', // Chart data records -- each entry in this array corresponds to a point on // the chart. data: [ { year: '2008', value: 20 }, { year: '2009', value: 10 }, { year: '2010', value: 5 }, { year: '2011', value: 5 }, { year: '2012', value: 20 } */ ], // The name of the data record attribute that contains x-values. xkey: 'year', // A list of names of data record attributes that contain y-values. ykeys: ['value'], // Labels for the ykeys -- will be displayed when you hover over the // chart. labels: ['Value'] }); года странные в массиве но это не имеет значение, просто числа там проходят |
imedia,
data это не свойство функции, а свойство объекта, который передаётся конструктору Morris.Line в качестве аргумента. Изменить этот объект можно до передачи его в функцию. Как-то так: var options = { // ID of the element in which to draw the chart. element: 'myfirstchart', // Chart data records -- each entry in this array corresponds to a point on // the chart. data: [ { year: '2008', value: 20 }, { year: '2009', value: 10 }, { year: '2010', value: 5 }, { year: '2011', value: 5 }, { year: '2012', value: 20 } ], // The name of the data record attribute that contains x-values. xkey: 'year', // A list of names of data record attributes that contain y-values. ykeys: ['value'], // Labels for the ykeys -- will be displayed when you hover over the // chart. labels: ['Value'] }; options.data = [ { year: '2013', value: 25 }, { year: '2009', value: 10 }, { year: '3010', value: 50 }, { year: '2051', value: 4 }, { year: '2012', value: 20 } ]; new Morris.Line( options ); |
да но у меня есть массив array
'0' : 'year' => "4" 'value' => "100" '1' : 'year' => "100" 'value' => "200" '2' : 'year' => "8" 'value' => "100" '3' : 'year' => "19" 'value' => "300" как именно его прировнять к этому options.data формату, и к тому же ваш вариант не переопределяет массив значений |
Цитата:
options.data = [ { year: '2013', value: 25 }, { year: '2009', value: 10 }, { year: '3010', value: 50 }, { year: '2051', value: 4 }, { year: '2012', value: 20 } ]; Цитата:
|
массив уже в яваскрипте как его присвоить option.data ? покажите на примере он же с основными ключами, и у вас все таки option.data не переопределяет, сейчас выложу сам фреймворк по построению графиков
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script> <div id="myfirstchart" style="height: 250px;"></div> <script> new Morris.Line({ // ID of the element in which to draw the chart. element: 'myfirstchart', // Chart data records -- each entry in this array corresponds to a point on // the chart. data: [ { year: '2008', value: 20 }, { year: '2009', value: 10 }, { year: '2010', value: 5 }, { year: '2011', value: 5 }, { year: '2012', value: 20 } ], // The name of the data record attribute that contains x-values. xkey: 'year', // A list of names of data record attributes that contain y-values. ykeys: ['value'], // Labels for the ykeys -- will be displayed when you hover over the // chart. labels: ['Value'] }); options.data = [ { year: '2013', value: 25 }, { year: '2009', value: 10 }, { year: '3010', value: 50 }, { year: '2051', value: 4 }, { year: '2012', value: 20 } ]; new Morris.Line( options ); </script> Видите нет переопределения |
imedia,
Вот так надо: <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script> <div id="myfirstchart" style="height: 250px;"></div> <script> var options = { // ID of the element in which to draw the chart. element: 'myfirstchart', // Chart data records -- each entry in this array corresponds to a point on // the chart. data: [ { year: '2008', value: 20 }, { year: '2009', value: 10 }, { year: '2010', value: 5 }, { year: '2011', value: 5 }, { year: '2012', value: 20 } ], // The name of the data record attribute that contains x-values. xkey: 'year', // A list of names of data record attributes that contain y-values. ykeys: ['value'], // Labels for the ykeys -- will be displayed when you hover over the // chart. labels: ['Value'] }; options.data = [ { year: '2013', value: 25 }, { year: '2009', value: 10 }, { year: '3010', value: 50 }, { year: '2051', value: 4 }, { year: '2012', value: 20 } ]; new Morris.Line( options ); </script> |
imedia,
'0' : 'year' => "4" 'value' => "100" '1' : 'year' => "100" 'value' => "200" '2' : 'year' => "8" 'value' => "100" '3' : 'year' => "19" 'value' => "300" Такая форма массива характерна только для php, js ошибку выдаст, он не знает что такое =>. |
Часовой пояс GMT +3, время: 05:25. |