заказать последовательность json - PullRequest
0 голосов
/ 26 мая 2020
• 1000 1011 * let order={"data":["test1","test2","test3","test4","test5","test6","test7","test8"]} (текст может отличаться). Можно ли оформить по порядку

let order={"data":["test1","test2","test3","test4","test5","test6","test7","test8"]}
const input = {
  "data_report": [{
      "data": [1, 2, 0, 3],
      "label": "user2",
      "backgroundColor": "blue"
    },
    {
      "data": [3, 4, 2, 5],
      "label": "test3",
      "backgroundColor": "#a3eaae"
    },
    {
      "data": [2, 3, 1, 4],
      "label": "test4",
      "backgroundColor": "#37bd11"
    },
    {
      "data": [1, 2, 0, 3],
      "label": "test7",
      "backgroundColor": "#43bee3"
    },
    {
      "data": [1, 2, 0, 3],
      "label": "user5",
      "backgroundColor": "#a3eaae"
    },
    {
      "data": [0, 1, 0, 2],
      "label": "test6",
      "backgroundColor": "#1195bd"
    },
    {
      "data": [0, 1, 0, 2],
      "label": "test1",
      "backgroundColor": "#aeb5b7"
    },
    {
      "data": [1, 2, 0, 3],
      "label": "test7",
      "backgroundColor": "pink"
    }
  ],
  "weeks": ["Week 1 ", "Week 2 ", "Week 3 ", "Week 4 "]
}
var sorted = input.data_report.sort((item)=>{return order.data;});
console.log( sorted);
<div class="test"></div>

Ответы [ 3 ]

3 голосов
/ 26 мая 2020

Вы можете сделать это с помощью sort:

input = { "data_report": [{ "data": [1, 2, 0, 3], "label": "Test2", "backgroundColor": "blue" }, { "data": [3, 4, 2, 5], "label": "test3", "backgroundColor": "#a3eaae" }, { "data": [2, 3, 1, 4], "label": "test4", "backgroundColor": "#37bd11" }, { "data": [1, 2, 0, 3], "label": "test7", "backgroundColor": "#43bee3" }, { "data": [1, 2, 0, 3], "label": "test5", "backgroundColor": "#a3eaae" }, { "data": [0, 1, 0, 2], "label": "test6", "backgroundColor": "#1195bd" }, { "data": [0, 1, 0, 2], "label": "test1", "backgroundColor": "#aeb5b7" }, { "data": [1, 2, 0, 3], "label": "test7", "backgroundColor": "pink" } ], "weeks": ["Week 1 ", "Week 2 ", "Week 3 ", "Week 4 "]};

input.data_report = input.data_report.sort((a,b)=>a.label.match(/\d+/)[0]-b.label.match(/\d+/)[0]);

console.log(input);
1 голос
/ 26 мая 2020

Да, вы можете использовать метод .sort для массива

var sorted = input.data_report.sort((item)=>{return item.label;});

Что-нибудь в этом роде.

0 голосов
/ 26 мая 2020

Вам необходимо, чтобы JSON был отсортирован перед добавлением к HTML. Я предлагаю что-то вроде функции sort.

_.map(_.sortBy(json, 'key'), 'value'); (здесь используется loda sh)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...