json array, remove all elements contained in another json array

Hello Experts,

I've seen several examples on the web filtering arrays, using for example jQuery grep.
But all i see i a little more simple than what i want.

Maybe this is more simple that i think..

I have this two arrays:
var searchtag_catg       = [{ id: 2, tb: 'text2', search: 'test2'},{ id: 4, tb: 'text4', search: 'test4'}];

var categories       = [{ id: 1, tb: 'text1', search: 'test1'},{ id: 2, tb: 'text2', search: 'test2'},{ id: 3, tb: 'text3', search: 'test3'},{ id: 4, tb: 'text4', search: 'test4'}];

Open in new window

And i want to show the records in the array categories that are not in searchtag_catg array, using the id key...
How can i do this?

Thx in advanced :)
Who is Participating?
Steve BinkConnect With a Mentor Commented:
Something like this:
var searchtag_id = searchtag_catg.map( function(v,i){ return v.id; } );
var good_categories = categories.filter( function(v,i) { return (searchtag_id.indexOf(v.id) < 0); } );

Open in new window

justaphaseAuthor Commented:
Sorry i didn't answer sooner!

Steve, amazing!

Worked like a charm.

Thx :)

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.