У меня есть массив dataAllDate, который может иметь или не имеет dataAllDate.positiveIncrease, и если он есть, то нам нужно изменить порядок dataAllDate.

Пробовал это

if(dataAllDate['positiveIncrease']) {
   console.lgo("hello");
   dataAllDate.reverse();
}

В основном я получаю это:

var dataAllDate = JSON.parse("["+dataAllDateToJason+"]");

Но dataAllDate не всегда одинаковы, поэтому мне нужно проверить этот ключ, и если это так, мне нужно обратить массив.

< Сильный > UPDATE

Это данные:

allDates: Array(65)
0: {date: "2/24/20", ricoverati_con_sintomi: 0, terapia_intensiva: 0, totale_ospedalizzati: 0, isolamento_domiciliare: 0, …}
1: {date: "2/25/20", ricoverati_con_sintomi: 0, terapia_intensiva: 0, totale_ospedalizzati: 0, isolamento_domiciliare: 0, …}
0
rob.m 29 Апр 2020 в 14:24

2 ответа

Лучший ответ

Вы можете попробовать что-то вроде этого:

if(hasPositiveIncrease(dataAllDate)){
  dataAllDate.reverse()
}

Вы можете определить hasPositiveIncrease следующим образом:

const hasPositiveIncrease = (dataAllDate) => 
  dataAllDate.find((item) => item.hasPositiveIncrease);

Это вернет первый элемент, у которого есть PositiveIncrease.

Рабочий фрагмент прилагается.

const dataAllDate = [
  {
    date: "2/24/20",
    ricoverati_con_sintomi: 0,
    terapia_intensiva: 0,
    totale_ospedalizzati: 0,
    isolamento_domiciliare: 0,
  },
  {
    date: "2/25/20",
    ricoverati_con_sintomi: 0,
    terapia_intensiva: 0,
    totale_ospedalizzati: 0,
    isolamento_domiciliare: 0,
  },
  {
    date: "2/26/20",
    ricoverati_con_sintomi: 0,
    terapia_intensiva: 0,
    totale_ospedalizzati: 0,
    isolamento_domiciliare: 0,
  },
  {
    date: "2/27/20",
    ricoverati_con_sintomi: 0,
    terapia_intensiva: 0,
    totale_ospedalizzati: 0,
    isolamento_domiciliare: 0,
    hasPositiveIncrease: 1
  },
];

const hasPositiveIncrease = (dataAllDate) => 
  dataAllDate.find((item) => item.hasPositiveIncrease);
  
 if(hasPositiveIncrease(dataAllDate)){
  console.log(dataAllDate.reverse())
 }
1
Utsav Patel 29 Апр 2020 в 11:47

Я бы использовал Array.some()

const dataAllDate = [{
    date: "2/24/20",
    ricoverati_con_sintomi: 0,
    terapia_intensiva: 0,
    totale_ospedalizzati: 0,
    isolamento_domiciliare: 0,
    positiveIncrease: true,
},
{ 
    date: "2/25/20",
    ricoverati_con_sintomi: 0,
    terapia_intensiva: 0,
    totale_ospedalizzati: 0,
    isolamento_domiciliare: 0 
}];

const positiveIncreaseExists = dataAllDate.some(item => item.positiveIncrease);
if (positiveIncreaseExists) {
    dataAllDate.reverse();
}

console.log(dataAllDate);
1
Fasani 29 Апр 2020 в 12:02