I have this array of objects:
var vigilantes = [
{
"fullName": "Tony Stark",
"classRoom": "XI",
"city": "NYC",
"job": "Engineer",
"studies": "MIT",
"markAV": 10,
},
{
"fullName": "Hulk Green",
"classRoom": "IV",
"city": "Beijing",
"job": "Physicist",
"studies": "Harvard",
"markAV": 9,
},
{
"fullName": "Thor Norse",
"classRoom": "XX",
"city": "Oslo",
"job": "God",
"studies": "U of Norway",
"markAV": 8.5,
},
{
"fullName": "Bruce Wayne",
"classRoom": "XIX",
"city": "Gotham",
"job": "Richamn",
"studies": "U of Gotham",
"markAV": 8,
},
{
"fullName": "Peter Parker",
"classRoom": "XI",
"city": "NYC",
"job": "Photographer",
"studies": "Syracuse U",
"markAV": 7.5,
}
]
And I would like to filter it by city, BUT I need to create a new array with the objects which share the same city. In this example the desired result would be an array of two objects because they share NYC as a city:
var vigilantes = [
{
"fullName": "Tony Stark",
"classRoom": "XI",
"city": "NYC",
"job": "Engineer",
"studies": "MIT",
"markAV": 10,
},
{
"fullName": "Peter Parker",
"classRoom": "XI",
"city": "NYC",
"job": "Photographer",
"studies": "Syracuse U",
"markAV": 7.5,
}
]
I know I could filter by city like this:
var nyc = "NYC"
var oslo = "Oslo"
var gotham = "Gotham"
var beijing = "Beijing"
var res = vigilantes.filter(function (vigilante) {
return beijing.indexOf(vigilante.city) >= 0;
});
But I'm looking for something easier!
Thank you very much for your help, as you can see I'm kind of new in programming!