SDE2 Problem Set
Filter array of objects on value or index
Problem Description & Specifications
Implement a function in JavaScript that filters an array of objects based on the value or index.
Example
Input:
const arr = [
{ name: "Amir", id: "1" },
{ name: "Samlan", id: "2" },
{ name: "Shahrukh", id: "0" },
];
console.log(filterObject(arr, 0)); // { name: "Amir", id: "1" }
console.log(filterObject(arr, "Amir")); // { name: "Amir", id: "1" }
console.log(filterObject(arr, "0")); // { name: "Shahrukh", id: "0" }
Note: You have to treat numeric values as index.Implementation & Test Harness
Editable Monaco RunnerJavaScript Lab Sandbox
/*
Implement a function in JavaScript that filters an array of objects based on the value or index.
Example
Input:
const arr = [
{ name: "Amir", id: "1" },
{ name: "Samlan", id: "2" },
{ name: "Shahrukh", id: "0" },
];
console.log(filterObject(arr, 0)); // { name: "Amir", id: "1" }
console.log(filterObject(arr, "Amir")); // { name: "Amir", id: "1" }
console.log(filterObject(arr, "0")); // { name: "Shahrukh", id: "0" }
Note: You have to treat numeric values as index.
*/
function filterArrayOfObject(arr, filter) {
if (typeof filter === "string") {
for (const entry of arr) {
for (const [key, val] of Object.entries(entry)) {
if (val === filter) {
return entry;
}
}
}
} else if (filter in arr) {
return arr[filter]
} else {
return undefined;
}
}
const arr = [
{ name: "Amir", id: "1" },
{ name: "Samlan", id: "2" },
{ name: "Shahrukh", id: "0" },
];
console.log(filterArrayOfObject(arr, 0));
console.log(filterArrayOfObject(arr, "Amir"));
console.log(filterArrayOfObject(arr, "0"));Console Output
Click "Run Code" above to execute and view output...