I have a json object array. I want to search the array and for each object, create a list of ‘services’ that is a comma-seperated list of all the keys which have a value of “yes”.
The list of json objects with the services list is then displayed in html using jquery’s each.
Its a large json file so I want to do it as efficiently as possible.
I already have the object’s properties being accessed through jQuery’s each (ie, obj.name)
— so I think it should be possible to filter the services listed for each object using
jQuery’s filter, and then display the key if the value is yes.
But it seems like a more efficient option would probably be to create a new javascript array, join the services with a value of yes and then add that variable to the html being
appended.
Im not sure which would be faster and so far havent been very successful at either… so any advice and examples would be very helpful.
Here’s what the json array looks like:
[
{"name":"name1",
"service1":"y",
"service2":"y",
"service3":"n",
},
{"name":"name2",
"service1":"n",
"service2":"y",
"service3":"n",
},
];
First off, delete trailing commas. Internet Explorer gets really, really confused by them. Anyway, I assume you don’t want to “search” the array when you say “for each value”; you want to iterate through the array and parse it into a more usable list. The first method I’d suggest is just passing what you want as the array you desire, but if that’s not an option, what you’re looking for is some variant of this, which should be fairly efficient (jsFiddle example):
That way you wind up with a display to the visitor of the services available and still keep an array around for further use if necessary.