1

I have an array that has around 1000 elements, for example:

var peoples = [
  { "name": "bob", "dinner": "pizza" },
  { "name": "john", "dinner": "sushi" },
  { "name": "larry", "dinner": "hummus" },
  { "name": "jacob", "dinner": "pizza" }
............];

I want to search the "dinner"s element of the array with a regex, so it doesn't has to be the exact type. For example, let's say the input is "piz"; it should then return all the matching elements as an array. In the example above, it should return:

var result = [{ "name": "bob", "dinner": "pizza" },
{ "name": "jacob", "dinner": "pizza" }]

I know how to search a string using the .match function in javascript, but I don't know how to use a similar function in an array. How can I do this?

3
  • 2
    You should know, this is not multidimensional array. This is array of objects. Only possible method is coding logic in a loop. Hope this helps. Commented Oct 26, 2015 at 14:10
  • Just for the clarity, it's "A string" not "A piece of string" :P (Unless you mean a part of a string, in which case I guess it's almost correct, if a little confusing and you'd want "A piece of a string") Commented Oct 26, 2015 at 14:14
  • .. and is it search is a "contains" pattern instead or a format pattern?.. If the answer is a contains pattern then do not use regex. And how about you trying on your first Commented Oct 26, 2015 at 14:18

1 Answer 1

9

You can use .filter with dynamic RegExp, like this

var search = "piz";
var condition = new RegExp(search);

var peoples = [
  { "name": "bob", "dinner": "pizza" },
  { "name": "john", "dinner": "sushi" },
  { "name": "larry", "dinner": "hummus" },
  { "name": "jacob", "dinner": "pizza" }
];

var result = peoples.filter(function (el) {
  return condition.test(el.dinner);
});

console.log(result);

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.