For the below code,
const groupbysubject = {
"Mathematics":
[
{totalStudents: "23", average: "78", class: "2"},
{totalStudents: "25", average: "80", class: "3"}
],
"English":
[
{totalStudents: "33", average: "98", class: "2"},
{totalStudents: "35", average: "99", class: "3"}
],
"Science":
[
{totalStudents: "43", average: "65", class: "2"},
]
}
var isEnglishPresent = Object.fromEntries(
Object.entries(groupbysubject).filter(
([key, val])=> key.includes("English")
)
);
I want the following output :
"33" "98" "2" "35" "99" "3"
I have filtered the above groupbysubject object into isEnglishPresent object. How do I proceed further to iterate over isEnglishPresent and get the above output. Please help
Thank you.
asked May 5, 2022 at 5:58
user13692230
2 Answers 2
You want a flat list of the values from the items inside the English key:
const groupbysubject = {
"Mathematics":
[
{totalStudents: "23", average: "78", class: "2"},
{totalStudents: "25", average: "80", class: "3"}
],
"English":
[
{totalStudents: "33", average: "98", class: "2"},
{totalStudents: "35", average: "99", class: "3"}
],
"Science":
[
{totalStudents: "43", average: "65", class: "2"},
]
};
var englishData = groupbysubject.English.flatMap(item => Object.values(item));
console.log(englishData);
answered May 5, 2022 at 6:03
Tomalak
340k68 gold badges547 silver badges635 bronze badges
Sign up to request clarification or add additional context in comments.
5 Comments
Tomalak
@ApoorvaOjha Why did your question not say from the start what you need?
Tomalak
Also, read my code, understand what it does, experiment a little, and you will figure it out. You don't depend on me making it copy-and-paste ready for you.
Andus
Although my answer is being accepted, I appreciate this less code
flatMap approachTomalak
@Andus It's a moot point anyway, as it only solves the problem the OP asked for, not the problem the OP wanted to solve.
Assume you have an English array with N objects like below.
const English = [
{totalStudents: "33", average: "98", class: "2"},
{totalStudents: "35", average: "99", class: "3"},
...
]
Here's how you extract all the values and put it into an array.
English.map(item => Object.values(item)).flat()
Here's the output
["33", "98", "2", "35", "99", "3"]
1 Comment
Roko C. Buljan
lang-js