Ad

Using FindWhere With Nested Objects In An Array

- 1 answer

I have a data structure that looks like this

var foo = [
    {
        bar: {
            something: 123
        },
        baz: {
            somethingElse: 321
        }
    },
    {
        bar: {
            something: 444
        },
        baz: {
            somethingElse: 555
        }
    }
];

I then have a variable:

var findMe = 444;

I'd like to search through my foo data structure (an array of objects) to see if findMe matches the bar.something property of any of the objects inside the foo array.

Using underscore.js, I would have thought the following code snippet would do the trick:

var _ = require('underscore');
var thingImLookingFor = _.findWhere(foo, {bar.something: findMe});

However that produces a syntax error in my application:

Uncaught SyntaxError: Unexpected token .

Is anyone able to shed some light on how I can achieve the search I'm looking for?

Thanks!

Ad

Answer

Found out the solution to my question.

_.find() does what I want quite nicely.

_.find(foo, function(obj) {
    return obj.bar.something == findMe;
});
Ad
source: stackoverflow.com
Ad