Объединение двух массивов указанным c способом в JavaScript внутри приложения React - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь заполнить таблицу строками и флажками, используя .map, но возникла проблема при создании массива. У меня есть 2 массива, которые я получаю из базы данных, и мне нужно объединить их в 1. Ниже я оставил два исходных массива (JournalA и JournalB)

Journal_A

[
  {STUDENT_NAME: "data1",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data"
  },
  {STUDENT_NAME: "data2",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data"
  },
  {STUDENT_NAME: "data3",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data"
  }
]

Journal_B

[{
  JOURNAL_DATA: "{
  "1": false,
  "2": false, 
  "3": false
  }"
}]

И это должно быть как ниже

[
  {STUDENT_NAME: "data1",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data",
   BOOL:true
  },
  {STUDENT_NAME: "data3",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data",
   BOOL:false
  },
  {STUDENT_NAME: "data2",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data",
   BOOL:true
  },
]

Я пытался использовать concat() и push() но React с ними не работает = (

let i = 0;
for (i=0; i<JournalA.length; i++){
    console.log(JournalA.map[i].concat(JournalB.concat[i]));
}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Может ли это быть ответом?

const Journal_A = [
  {STUDENT_NAME: "data1",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data"
  },
  {STUDENT_NAME: "data2",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data"
  },
  {STUDENT_NAME: "data3",
   STUDENT_SECOND_NAME: "data",
   STUDENT_LAST_NAME: "data",
   STUDENT_PHOTO: "data"
  }
]


const Journal_B = [{
  JOURNAL_DATA: '{"1": false, "2": false, "3": false}'
}]

const jData = JSON.parse( Journal_B[0].JOURNAL_DATA)

const result = Journal_A.map( ( item, idx ) => {
  item.BOOL = jData[ idx + 1 ]
  return item
} )

console.log(result)
0 голосов
/ 30 апреля 2020

Попробуйте это без for l oop

let merged_array = Journal_A.map((a, c) => ({
    ...a,
    BOOL: Journal_B[0][c + 1]
}))

EDIT

Я не видел, что Journal_B был объектом, вы пытаетесь объединить массив с тремя элементами с помощью другая с одним элементом, структура не очень понятна только в этом фрагменте кода, но на вашем месте я постараюсь упростить задачу.

РЕДАКТИРОВАТЬ 2

Ваш синтаксис недействителен после редактирования Journal_B

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