Рубрики
Uncategorized

Соответствующие свойства и значения в задаче объекта.

Добро пожаловать, мне жаль, что мне потребовалось некоторое время, чтобы что -то опубликовать. В любом случае, давайте вернемся прямо к … Tagged с JavaScript, DevOps, Tutorial, Programming.

  • Добро пожаловать, мне жаль, что мне потребовалось некоторое время, чтобы что -то опубликовать. В любом случае, давайте вернемся к этому. В этом посте давайте сделаем функцию, которая просматривает массив объектов (первый аргумент) и возвращает массив всех объектов, которые имеют соответствующие пары имени и значения (второй аргумент). Каждое имя и значение значения исходного объекта должна присутствовать в объекте из коллекции.
  • Например, если первый аргумент [{First: "Randy", Last: "Skywalker"}, {First: "Alan", Last: Null}, {First: "Diego", Last: "Rivera"}] и второй аргумент — {Последний: "Ривера"} Затем вы должны вернуть третий объект из массива (первый аргумент), потому что он содержит имя и его значение, которое было принято как второй аргумент.

Хорошо, давайте тогда доберемся до этого. Ниже уже предварительно написано для вас.

function names(collection, target) {
  var arr = [];
  // Only change code below this line


  // Only change code above this line
  return arr;
}

names([{ first: "Randy", last: "Skywalker" }, { first: "Alan", last: null }, { first: "Diego", last: "Rivera" }], { last: "Rivera" });
  • Отвечать:
function names(collection, target) {
  let keys = Object.keys(target);

  return collection.filter(function(obj) {
    for (let i = 0; i < keys.length; i++) {
    if (!obj.hasOwnProperty(keys[i]) || obj[keys[i]] !== target[keys[i]]) {
      return false;
    }
  }
    return true;
  })
}

names([{ first: "Randy", last: "Skywalker" }, { first: "Alan", last: null }, { first: "Diego", last: "Rivera" }], { last: "Rivera" }); // console.log would display the entire object [{ first: 'Diego', last: 'Rivera' }]
  • ! obj в основном означает, если obj не.
  • Также есть немного другой способ сделать петлю.
  • Бывший:
function names(collection, target) {
  let keys = Object.keys(target);

  return collection.filter(function(obj) {
    for (let key of keys) {
    if (!obj.hasOwnProperty(key) || obj[keys] !== target[keys]) {
      return false;
    }
  }
    return true;
  })
}

Оригинал: «https://dev.to/rthefounding/matching-properties-and-values-in-the-object-4g4e»