@Quintis

Как отфильтровать массив объектов по нескольким свойствам?

function whatIsInAName(collection, source) {
  // What's in a name?
  var arr = [];
  // Only change code below this line
  let newArr = collection.filter(item => item.last === source.last );
  
  // Only change code above this line
  console.log(newArr);
    console.log(arr);
  return newArr;
}

whatIsInAName([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" });


Здравствуйте друзья , может кто то сказать , как сделать так что б функция выполняла следующие условия :
<code lang="javascript">
whatIsInAName([{ "apple": 1, "bat": 2 }, { "bat": 2 }, { "apple": 1, "bat": 2, "cookie": 2 }], { "apple": 1, "bat": 2 }) should return [{ "apple": 1, "bat": 2 }, { "apple": 1, "bat": 2, "cookie": 2 }].
whatIsInAName([{ "apple": 1, "bat": 2 }, { "apple": 1 }, { "apple": 1, "bat": 2, "cookie": 2 }], { "apple": 1, "cookie": 2 }) should return [{ "apple": 1, "bat": 2, "cookie": 2 }].
whatIsInAName([{ "apple": 1, "bat": 2 }, { "apple": 1 }, { "apple": 1, "bat": 2, "cookie": 2 }, { "bat":2 }], { "apple": 1, "bat": 2 }) should return [{ "apple": 1, "bat": 2 }, { "apple": 1, "bat": 2, "cookie":2 }].
whatIsInAName([{"a": 1, "b": 2, "c": 3}], {"a": 1, "b": 9999, "c": 3}) should return []
</code>


Link : https://learn.freecodecamp.org/javascript-algorith...
  • Вопрос задан
  • 221 просмотр
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const whatIsInAName = (collection, source) =>
  collection.filter(function(n) {
    return this.every(([ k, v ]) => n[k] === v);
  }, Object.entries(source));
Ответ написан
hzzzzl
@hzzzzl
function whatIsInAName(collection, source) {
  return collection.filter(obj => 
	  Object.entries(source).every(([key, val]) => obj[key] === val)
  )
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект