2 votes

Comment faire correspondre les éléments d'un tableau d'objets à l'état d'un autre tableau ?

Je sais que le titre semble redondant, mais peut-être qu'une explication plus spécifique sera utile. Je récupère des éléments à partir d'une requête de recherche et ils sont renvoyés sous la forme d'un tableau d'objets. J'ai créé une fonction qui stocke les données demandées dans une variable constante que je mappe sur et renvoie les valeurs item.date_created de chaque élément du tableau. Ma question est alors de savoir comment prendre chacune de ces valeurs date_créée et les stocker dans un autre tableau qui est passé à state.

Lorsque l'on essaie de stocker chaque valeur dans un tableau, on crée un tableau pour chaque élément au lieu d'un seul tableau contenant toutes les valeurs. Je comprends que l'objectif de la fonction .map est d'isoler et de renvoyer chaque valeur individuellement, d'où ma question sur la façon de les transmettre à un tableau spécifique au lieu de tableaux individuels. S'il s'agit d'une manière totalement erronée de procéder, veuillez me fournir un moyen d'y parvenir.

Valeurs retournées :

entries: Array(10)
  0: {4: "X", 5: "X", 6: "X", 7: "X", 8: "X", 9: "X", id: "X", form_id: "X", 
   post_id: null, date_created: "2020-08-01 01:28:59", date_updated: "2020-08-10 01:28:59", …}
  1: {4: "X", 5: "X", 6: "X", 7: "X", 8: "X", 9: "X", id: "X", form_id: "X", 
   post_id: null, date_created: "2020-08-10 02:56:03", date_updated: "2019-11-08 02:56:03", …}

La structure de mon code est la suivante :

fetchStartSubmissions = () => {
  const fetchStart = moment(this.state.startDate).format('yyyy-MM-DD');
  const resData = this.state.formEntries.entries;

  resData.map(item => {

    if (item.date_created = fetchStart) {

      var items = [item.date_created];
      console.log(items);
      this.setState({
        startItems: [items],
      });

    }

  })
}

Sortie :

["2020-08-01"]
["2020-08-10"]

0voto

eugen sunic Points 2937

Vous pouvez utiliser reduce pour ajouter vos données à un nouveau tableau. A

const arr = [{
  4: "X",
  5: "X",
  6: "X",
  7: "X",
  8: "X",
  9: "X",
  id: "X",
  form_id: "X",
  post_id: null,
  date_created: "2020-08-01",
  date_updated: "2020-08-10 01:28:59"
}, {
  4: "X",
  5: "X",
  6: "X",
  7: "X",
  8: "X",
  9: "X",
  id: "X",
  form_id: "X",
  post_id: null,
  date_created: "2020-08-10",
  date_updated: "2019-11-08 02:56:03"
}]

const result = arr.reduce((acc, {
  date_created
}) => {
  const date = date_created.substring(date_created.indexOf(' '));
  acc.push(date);
  return acc;
}, []);
console.log(result)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X