Как объединить неизвестное количество объектов в один с помощью lodash

#javascript #lodash

#javascript #lodash

Вопрос:

Я работаю над проектом, основанным на реакции, и получаю данные из api просто так

 [
  { 
   "value":[1,2,3.....1250]  //each have max 1250 item, can be have multi of them
  },
  { 
   "value":[1,2,3.....1230]
  }
]
 

Проблема в том, что я не знаю, сколько таких элементов, может быть, у 3,4 объекта есть 1250 элементов, я не знаю, поэтому мой вопрос в том, как объединить 2 или больше одного объекта, значение объекта будет выглядеть так, если у нас есть только 2 объекта:

 [
  {
  "value":[1,2,3...1250,1,2,3..1230]. //will have every value of two object
  }
]
 

Как я могу это сделать в lodash??

Ответ №1:

Вам не нужен lodash . Вы можете сделать это просто с помощью метода сокращения JS.

Если вы действительно хотите использовать lodash, то

_ is importing lodash as _

 _.reduce(arr, (currentArray, currentValueObject) => ([{
      value: [...currentArray[0].value, ...currentValueObject.value] //concatenate current object value to the object valules till now
    }]), [{
      value: [] //the final value array inside object 
    }])
 
 var arr = [{
    "value": [1, 2, 3, 1250] //each have max 1250 item, can be have multi of them
  },
  {
    "value": [1, 2, 3, 1230]
  }
]

var result = arr.reduce((currentArray, currentValueObject) => ([{
  value: [...currentArray[0].value, ...currentValueObject.value] //concatenate current object value to the object valules till now
}]), [{
  value: [] //the final value array inside object 
}])

console.log(result); 

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

1. У вас какая-то ошибка в коде lodash, он не может быть запущен @Himashiru

2. Вы импортировали Lodash?? Я только что привел вам пример… Вот док lodash.com/docs/4.17.15#reduce