Filter Objects on Value

const arr = [
  { name: "Amir", id: "1" },
  { name: "Samlan", id: "2" },
  { name: "Shahrukh", id: "0" },
  { name: "Appu", id: "0" },
];

console.log(filterObject(arr, 0));
console.log(filterObject(arr, "Amir"));
console.log(filterObject(arr, "0"));
console.log(filterObject(arr, "-1"));
console.log(filterObject(arr, true));

// { name: 'Amir', id: '1' }
// [ { name: 'Amir', id: '1' } ]
// [ { name: 'Shahrukh', id: '0' }, { name: 'Appu', id: '0' } ]
// []
// undefined
function filterObject(arr, val) {
  if (typeof val === "number") {
    if (val in arr) return arr[val];
  }

  else if (typeof val === "string") {
    return arr.filter((item) => {
      const values = Object.values(item);

      for (let itemValue of values) {
        if (itemValue === val) {
          return true;
        }
      }

      return false;
    });
  }

  return undefined;
}