JS_HOME_WORK/45-includes-object-or-array/solution.js
2025-01-17 01:00:07 +01:00

45 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** ЗАДАЧА 45 - Поиск элементов в массивах
*
* 1. Создайте функцию isElementInArray с двумя параметрами "searchElement" и "inputArray"
*
* 2. Если "searchElement" - не объект, просто используйте метод "includes"
*
* 3. Если "searchElement" - это объект или массив,
* вам необходимо сначала преобразовать каждый элемент "inputArray" в строку,
* а затем применить метод "includes" с аргументом, который также будет преобразован в строку
*/
function isElementInArray(searchElement, inputArray) {
if (typeof searchElement !== 'object') {
return inputArray.includes(searchElement)
}
return inputArray
.map((element) => JSON.stringify(element))
.includes(JSON.stringify(searchElement))
}
const tags = [
['javascript', 'es6'],
['css', 'flexbox'],
['html', 'web-browser'],
]
const fruits = [
{ title: 'Orange', quantity: 10 },
{ title: 'Banana', quantity: 5 },
{ title: 'Apple', quantity: 25 },
]
const primitiveTypesArray = [25, 'x', true, undefined, null]
console.log(isElementInArray(['css', 'flexbox'], tags)) // true
console.log(isElementInArray(['flexbox', 'css'], tags)) // false
console.log(isElementInArray({ title: 'Apple', quantity: 25 }, fruits)) // true
console.log(isElementInArray({ title: 'Banana' }, fruits)) // false
console.log(isElementInArray(25, primitiveTypesArray)) // true