JavaScript: Сравните два объекта, чтобы определить, содержит ли первый эквивалентные значения свойств для второго, на основе предоставленной функции
Основы JavaScript (синтаксис ES6): упражнение 179 с решением
Напишите программу на JavaScript для сравнения двух объектов, чтобы определить, содержит ли первый объект значения эквивалентных свойств для второго на основе предоставленной функции.
Пример решения:
HTML-код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Compare two objects to determine if the first one contains equivalent property values to the second one, based on a provided function</title>
</head>
<body>
</body>
</html>
Код JavaScript:
//#Source https://bit.ly/2neWfJ2
const matchesWith = (obj, source, fn) =>
Object.keys(source).every(
key =>
obj.hasOwnProperty(key) && fn
? fn(obj[key], source[key], key, obj, source)
: obj[key] == source[key]
);
const isGreeting = val => /^h(?:i|ello)$/.test(val);
console.log(matchesWith(
{ greeting: 'hello' },
{ greeting: 'hi' },
(oV, sV) => isGreeting(oV) && isGreeting(sV)
));
Пример вывода:
правда
Блок - схема:
Демонстрация в реальном времени:
См. Pen javascript-basic-упражнение-179-1 от w3resource ( @ w3resource ) на CodePen .
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Написать программу на JavaScript для создания нового объекта из комбинации двух или более объектов.
Далее: Напишите программу на JavaScript для создания нового объекта из указанного объекта, где все ключи в нижнем регистре.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования