отфильтруйте массив объектов, содержащий пары значений ключей, где значение является целым числом

#javascript #arrays #filter #include

Вопрос:

Мой массив выглядит так

 filtervalue = xy

arr = [{id:123, name:'xyz'}, {id:122, name:'xyy'}, {id:134, name:'zzz'}]

arr.filter((i) =>
          name.includes(filtervalue)
        );
 

выше приведены ожидаемые результаты, как показано ниже

 [{id:123, name:'xyz'}, {id:122, name:'xyy'}]
 

Я пытаюсь сделать то же самое с удостоверением личности. это дает мне ошибку

.включает в себя не является функцией.

например, когда мой фильтрвал = 12

ожидаемый результат должен быть таким, как показано ниже

 [{id:123, name:'xyz'}, {id:122, name:'xyy'}]
 

как мне этого добиться ?

Комментарии:

1. Я думаю name.includes(filtervalue) , должно быть i.name.includes(filtervalue)

Ответ №1:

Пожалуйста, используйте функцию фильтра вот так.

 const filtervalue = 12

const arr = [{id:123, name:'xyz'}, {id:122, name:'xyy'}, {id:134, name:'zzz'}]

const result = arr.filter((val) => val.id.toString().includes(filtervalue.toString()))

console.log(result) 

Комментарии:

1. я хочу отфильтровать его по идентификатору и получить тот же результат

2. Я обновил код с помощью функции «toString»

3. спасибо, совсем забыл, что есть такая возможность преобразовать число в строку

4. Я надеюсь, что ваша работа идет хорошо