@kunjut19

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

Есть два объекта. Первый объект - это список стран с их столицами и населением.
var countries = {
      japan: {
        capital: 'tokyo',
        popultion: 124776364
      },

      sweden: {
        capital: 'stockholm',
        popultion: 10327589
      },

      germany: {
        capital: 'berlin',
        popultion: 83149300
      },

      .........
      .........
      .........
}


Второй объект - это список уже посещенных пользователем стран с датой визита.
var visited = {
      japan: 2018,
      italy: 2012,
      france: 2019,
      .........
      .........
}


Как создать массив notVisited из названий стран, которые входят в countries, но отсутствуют в visited?
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Object.keys(countries).filter(c => !visited.hasOwnProperty(c))

Массив ключей объекта countries фильтруем,
оставляя только те, кого нет как свойства в объекте visited
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@StockholmSyndrome
const visitedCountries = Object.keys(visited);
const notVisited = Object.keys(countries).filter((c) => !visitedCountries.includes(c));
Ответ написан
@andreysuha
Что то знаю
let visitArr = Object.keys(visited);
let noVisit = Object.keys(countries).filter(country => !visitArr.includes(country));
Ответ написан
@turiq
let notVisited = [];
for (let key in countries) {
  if (!visited.hasOwnProperty (key)) {
      notVisited.push(key)
  }
}
Ответ написан
Комментировать
@Karpion
Скопировать первый объект - как есть или в какой форме он нужен. Потом пройтись по копии и выкинуть то, что есть во втором объекте.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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