Как вызвать тех, у кого больше данных? json

#javascript #json #reactjs

#javascript #json #reactjs

Вопрос:

Добрый день, поскольку я могу вызвать из массива json те, которые содержат больше данных, я создаю график и должен содержать те, у которых больше данных, у меня есть этот код, куда я отправляю свои данные

 vehiculoPorColores = () => {
const _this = this
fetch("/live/graph/color")
  .then(response => response.json())
  .then(datos => {
    const vehicleKey = Object.keys(datos)
    console.log(vehicleKey)
    _this.setState(
      {
        vehiculosC: vehicleKey.splice(0, 5).map((i, e) => ({
          name: vehicleKey[e],
          colores: datos[i]
        }))
      },
      () => {
        setTimeout(this.vehiculoPorColores, 1000)
      }
    )
  })
  }
  

JSON:

 {
  "lavender": 3,
  "white": 12,
  "dimgrey": 4,
  "seagreen": 2,
  "lightslategrey": 6,
  "slategrey": 7,
  "indianred": 2,
  "snow": 1,
  "darkslategrey": 1,
  "khaki": 1,
  "gainsboro": 3,
  "palevioletred": 1,
  "darkgrey": 1
}
  

чтобы быть более конкретным: json

Мне нужно отсортировать данные и выбрать 5 записей с наибольшими значениями, прямо сейчас я отправляю вызов только 5, но это не те, у которых больше данных, и мне это нужно, и что их всего 5, аааа, и я работаю в react

Комментарии:

1. Что вы имеете в виду под «теми, у кого больше данных»? Больше данных, чем что?

2. на изображении показан список, в этом списке есть цвета и цифры, у тех, у кого больше номеров, я не знаю, правильно ли я понимаю? img= i.stack.imgur.com/8pXLp.png

3. Выше чего? «Выше» — понятие относительное. Код не может угадать, что вы используете в качестве порога для определения «выше». Вы должны указать ему, каков порог.

4. Может быть, вы имеете в виду, что хотите отсортировать данные и выбрать 5 записей с наибольшими значениями?

5. Точно, мне нужно отсортировать данные и выбрать 5 записей с наибольшими значениями, извините, я не могу указать, я почти не говорю по-английски

Ответ №1:

Если вы хотите отсортировать массив в JS, вы можете сделать…

Наличие объекта в форме: { key1: 10, key2: «строка»}

Затем, имея массив:

 [{
 key1: 10,
 key2: "a string"
},
{
 key1: 20,
 key2: "a string"
}]
  

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

 [{
 key1: 10,
 key2: "a string"
},
{
 key1: 20,
 key2: "a string"
}].sort((elemN, elemNplus)=> elemN.key1 - elemNplus.key1) :: output => [{
 key1: 10,
 key2: "a string"
},
{
 key1: 20,
 key2: "a string"
}]
  

и больший первый:

 [{
 key1: 10,
 key2: "a string"
},
{
 key1: 20,
 key2: "a string"
}].sort((elemN, elemNplus)=> elemNplus.key1 - elemN.key1) :: output => [{
 key1: 20,
 key2: "a string"
},
{
 key1: 10,
 key2: "a string"
}]