@ojiekcahdp

Как из одного объекта выборочно присвоить значение другому объекту?

В общем есть JSON типа:
[
 {
  "id":  1,
  "name": "Anton",
  "lastname": "Romanov"
   "rank": "admin",
   "online": "Не распознано"
 },
 {
  "id":  2,
  "name" "Andrey",
  "lastname": "Ivanov"
  "rank":  "admin",
  "online": "Не распознано"
 },
 {
  "id":  3,
  "name": "Vasya",
  "lastname": "Antonov"
   "rank": "admin",
  "online": "Не распознано"
 },
 {
  "id":  4,
  "name" "Ivan",
  "lastname": "Andreev"
  "rank":  "admin",
  "online": "Не распознано"
 }
 {
  "id":  5,
  "name" "Ivan",
  "lastname": "Vasiliv"
  "rank":  "player",
  "online": "Не распознано" 
 }...
]


Далее получаю список объектов из апи типа:
[
  {
    first_name: 'Vasya',
    id: 3
    can_access_closed: true,
    is_closed: false,
    online: 0
  },
  {
    first_name: 'Andrey',
    id: 2,
    can_access_closed: true,
    is_closed: false,
    online: 0
  },
  {
    first_name: 'Ivan',
    id: 5,
    can_access_closed: true,
    is_closed: false,
    online: 1
  }...
]


Как мне присвоить значения online из второго объекта первому?
  • Вопрос задан
  • 158 просмотров
Решения вопроса 2
Krasnodar_etc
@Krasnodar_etc
avito front
const result = ПЕРВЫЙ_МАССИВ.map(user => {
  const userInSecondArray = ВТОРОЙ_МАССИВ.find(userSecond => user.id === userSecond.id);
  return { ...user, online: userInSecondArray.online };
});

console.log(result);
Ответ написан
webdisigner
@webdisigner
делается очень просто

var a = [
 {"id":1,"name": "Anton","lastname": "Romanov","rank": "admin","online":"Не распознано"},
 {"id":2,"name":"Andrey","lastname": "Ivanov","rank":"admin","online":"Не распознано"},
 {"id":3,"name": "Vasya","lastname": "Antonov","rank":"admin","online":"Не распознано"},
 {"id":4,"name":"Ivan","lastname": "Andreev","rank":  "admin","online":"Не распознано"},
 {"id":5,"name":"Ivan","lastname": "Vasiliv", "rank":"player","online":"Не распознано"}
];


var b = [
  {'first_name': 'Vasya','id': 3,'can_access_closed': true,'is_closed': false,'online': 0},
  {'first_name': 'Andrey','id': 2,'can_access_closed': true,'is_closed': false,'online': 0},
  {'first_name': 'Ivan','id': 5,'can_access_closed': true,'is_closed': false,'online': 1}
];


b.forEach(user=>{
  a.find(users=>users.id == user.id).online = user.online
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
spacenear
@spacenear
React Web Developer
Циклом пройтись по первому объекту а внутри вторым циклом по последнему и сравнивая id присваивать
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы