У меня есть массив объектов и массив. Мое намерение состоит в том, чтобы пройти через оба и вставить каждый элемент массива в определенный ключ в массив объектов.

Мое намерение динамически вставлять значения каждого массива

Примечания для уточнения:

  1. длина arr1 = 44
  2. длина arr2 = 44
  3. длина arrOfObj = 44
  4. мой мыслительный процесс операции:

    1. цикл через arr1 либо forEach или для
    2. цикл через arr2
    3. цикл через arrOfObject
    4. вставить в arrOfObject [i] .labels arr1 [i]
    5. вставить в arrOfObject [i]. значения arr2 [i]

пример:

const arr = [ 76, 72, 69, 66, 66, 66, 65, 65, 64, 64, 64, 63, 61, 61, 61, 61, 61, 61, 60, 59, 59, 59, 58, 58, 57, 57, 56, 56, 56, 55, 54, 54, 53, 52, 52, 51, 51, 50, 50, 49, 49, 49, 47, 47] 
  const arr2 = [ "Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7", "Item8", "Item9", "Item10", "Item11", "Item12", "Item13", "Item14", "Item15", "Item16", "Item17","Item18", "Item19", "Item20", "Item21", "Item22", "Item23", "Item24", "Item25","Item26", "Item27", "Item28", "Item29", "Item30", "Item31", "Item32", "Item33", "Item34", "Item35", "Item36", "Item37", "Item38", "Item39", "Item40", "Item41", "Item42", "Item43", "Item44] 
  const arrOfObj = [ { labels:[], values: [], }, { labels:[], values: [], }, { labels:[], values: [], }, ] 

Желаемый результат

  const arrOfObj = [ { labels:[arr1[0]], values: [arr2[0]], }, { labels:[arr1[1]], values: [arr2[1]], }, ] 

-outcome

  const arrOfObj = [ { labels:['item1'], values: [76], }, { labels:['item2'], values: [72], }, ] 

Если есть способ сделать это без вложенных циклов (может быть, один цикл для вставки значений и отдельный цикл для меток), поскольку вложенные циклы снижают производительность выполнения, тогда это предпочтительно, если только это не является необходимостью, тогда все в порядке.

Кроме того, если вы хороший источник для манипулирования объектами и массивами выше базового уровня, будет здорово поделиться

Заранее большое спасибо

Переработан оригинальный ответ на эту функцию. Он будет динамически делать то, что вы хотели для массива х с длиной х

 function combineArr(target, ...arrays){ // looping through the target array target.map((ele, superIndex)={amp}gt;{ // looping through the attributes of the target Object.keys(ele).map((key, index)={amp}gt;{ // writing the results target[superIndex][key] = arrays[index][superIndex] }) }) return target; } console.log(combineArr(arrayOfObj,arr1,arr2)) 

target — это ваш arrOfObj, а массивы будут arr1, arr2

Итак, все сводится к тому, что ваш arrOfObj имеет общий индекс с arr1 и arr2. arrOfObj [i] arr1 [i] arr2 [i], но так как arrOfObj [i] является объектом с ключами, мы делаем его итерируемым с Object.keys и делаем массивы итерируемыми, а также … массивами, чтобы keys [i] разделял индекс с массивами [i]

FUBAR

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,