Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите написать функцию фильтрации (https://javascript.ru/forum/dom-window/83252-pomogite-napisat-funkciyu-filtracii.html)

TomWalbridge 28.10.2021 23:20

Помогите написать функцию фильтрации
 
Добрый вечер! Такая задача
Напишите функцию filter в object-array-filter.js, фильтрующую массив объектов по значению свойства. Массив, название свойства и нужное значение должны передаваться в качестве аргументов. Пример использования:

let objects = [
{ name: 'Василий', surname: 'Васильев' },
{ name: 'Иван', surname: 'Иванов' },
{ name: 'Пётр', surname: 'Петров' }
]


let result = filter(objects, 'name', 'Иван');

/*
Результат выполнения должен быть:
[
{ name: 'Иван', surname: 'Иванов' }
]
*/
У меня получилось отфильтровать, КАК ЭТО ДЕЛО ВСТРОИТТ В ФУНКЦИЮ, пытался, но все безуспешно
< JS>
let objects = [
{ name: 'Василий', surname: 'Васильев' },
{ name: 'Иван', surname: 'Иванов' },
{ name: 'Пётр', surname: 'Петров' }
]

let result = objects.filter(objects => objects.name == 'Иван')

console.log(result)
<JS>
ЗАРАНЕЕ ВСЕМ БЛАГОДАРЕН ЗА ПОМОЩЬ, И КОММЕНТ В ЧЕМ НЮАНС, чтобы понять как это должно работать !!!

рони 28.10.2021 23:33

TomWalbridge,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 28.10.2021 23:40

TomWalbridge,
<body>
    <script>
        let objects = [{
                name: 'Василий',
                surname: 'Васильев'
            },
            {
                name: 'Иван',
                surname: 'Иванов'
            },
            {
                name: 'Пётр',
                surname: 'Петров'
            }
        ]

        const filter = (objects, property, value) => objects.filter(item => item[property] === value);
        let result = filter(objects, 'name', 'Иван');
        document.body.append(JSON.stringify(result));
    </script>
</body>

TomWalbridge 29.10.2021 09:03

let objects = [
{ name: 'Василий', surname: 'Васильев' },
{ name: 'Иван', surname: 'Иванов' },
{ name: 'Пётр', surname: 'Петров' }
]

let result = objects.filter(objects => objects.name == 'Иван')

console.log(result)

TomWalbridge 29.10.2021 09:08

Спасибо за ответ, все выводит!

TomWalbridge 30.10.2021 02:16

еще один вопрос, чтобы вывести функцию, а не переменную, в консоль, мне надо использовать filter или item()

рони 30.10.2021 08:16

TomWalbridge,
не понимаю.


Часовой пояс GMT +3, время: 10:41.