Отобразить массив в массив объектов с заданным объектом в верхней части результирующего массива - PullRequest
0 голосов
/ 21 марта 2020

Предположим, у вас есть массив и объект, который выглядит следующим образом

const arr = ["a", "b", "c"]
const obj = {tree : -1, area: null}

Как бы вы go рассмотрели итерацию по указанному массиву, чтобы вернуть массив объектов, подобных этому, при этом установив начальное значение на объект выше.

Предположим, что flatlist() нельзя использовать в этой ситуации.

Желаемый вывод: [{tree : -1, area: null}, {tree : 0, area: "a" },{tree : 1, area: "b" },{tree : 2, area: "c" } ]

Ответы [ 2 ]

3 голосов
/ 21 марта 2020

Как насчет этого:

const arr = ["a", "b", "c"],
      obj = {tree : -1, area: null},
      
      result = [obj, ...arr.map((area,tree) => ({area,tree}))]
      
console.log(result)

С другой стороны, вы можете использовать Array.prototype.reduce() с вашим исходным объектом в качестве начального результирующего значения массива:

const arr = ["a", "b", "c"],
      obj = {tree : -1, area: null},
      
      result = arr.reduce((r,area,tree) => (r.push({area,tree}),r), [obj])
      
console.log(result)
.as-console-wrapper{min-height:100%;}
0 голосов
/ 21 марта 2020

Добавление одного элемента в начале и использование карты

const arr = ["a", "b", "c"];

const results = [null, ...arr].map((area, i) => ({ tree: i - 1, area }));

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