Задать вопрос
melkaya94
@melkaya94

Как переделать массив?

Есть массив:

[
  {
    id: {
      title: "Id",
      value: 19,
    },
    title: {
      title: "Title",
      value: " Режиссёр \"Доктора Хауса\" снимет новый фильм"
    },
    slug: {
      title: "Slug",
      value: "slug2334",
    }
  },
  {
    id: {
      title: "Id",
      value: 8,
    },
    title: {
      title: "Title",
      value: "Колониальная сказка. «Жги», режиссер Кирилл Плетнев",
    },
    slug: {
      title: "Slug",
      value: "6643766f8e8d9b39fcbf818d677f4fbe",
    }
  }
]

Нужно из него сделать новый массив такой структуры:

newArr =[
  {
    id: value,
    title: value,
    slug: value
  },
  {
    id: value,
    title: value,
    slug: value
  }
]
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const newArr = [];
for (let i = 0; i < arr.length; i++) {
  newArr[i] = {
    id: arr[i].id.value,
    title: arr[i].title.value,
    slug: arr[i].slug.value,
  };
}

или

const newArr = arr.map(n => Object
  .entries(n)
  .reduce((acc, [ k, v ]) => (acc[k] = v.value, acc), {})
);

или

const newArr = [];
for (const n of arr) {
  newArr.push(Object
    .keys(n)
    .reduce((acc, k) => ({ ...acc, [k]: n[k].value }), {})
  );
}

или

const newArr = (function get(i, n = arr[i]) {
  return n
    ? [ Object.assign({}, ...Object
          .values(n)
          .map(m => ({ [m.title.toLowerCase()]: m.value }))
        ), ...get(i + 1) ]
    : [];
})(0);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
let data = [{
 "id": {
         "title": "Id",
         "value": 19,
        },
  "title": {
         "title": "Title",
          "value": " Режиссёр \"Доктора Хауса\" снимет новый фильм"
   },
   "slug": {
         "title": "Slug",
         "value": "slug2334",
   }
},
{
     "id": {
            "title": "Id",
             "value": 8,
       },
       "title": {
              "title": "Title",
              "value": "Колониальная сказка. «Жги», режиссер Кирилл Плетнев",
       },
      "slug": {
           "title": "Slug",
          "value": "6643766f8e8d9b39fcbf818d677f4fbe",
       }
}]
let newObj=[];
Object.keys(data).map(
	el=>newObj.push({'id':data[el].id.value,'slug':data[el].slug.value,'title':data[el].title.value})
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы