Возьмите Object.values
объекта, чтобы получить массив значений, и затем вы сможете увидеть, соответствуют ли какие-либо значения searchKey
(хотя вы ищете значения , так что, вероятно, лучшеназвать его valueToFind
):
var aa = [{
id: 1,
type: 1,
status: 1,
name: 'txt'
},
{
id: 2,
type: 1,
status: 1,
name: 'txt',
},
{
id: 3,
type: 0,
status: 0,
name: 'txt'
},
{
id: 4,
type: 0,
status: 0,
name: 'wrongname'
},
];
function filterIt(arr, valueToFind) {
return arr.filter(function(obj) {
return Object.values(obj).includes(valueToFind);
});
}
console.log(filterIt(aa, 'txt'));
Поскольку вы использовали .some
, рассмотрите возможность использования синтаксиса ES6 для более краткого кода:
var aa = [{
id: 1,
type: 1,
status: 1,
name: 'txt'
},
{
id: 2,
type: 1,
status: 1,
name: 'txt',
},
{
id: 3,
type: 0,
status: 0,
name: 'txt'
},
{
id: 4,
type: 0,
status: 0,
name: 'wrongname'
},
];
const filterIt = (arr, valueToFind) => arr.filter(
obj => Object.values(obj).includes(valueToFind)
);
console.log(filterIt(aa, 'txt'));