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?
-
2You should know, this is not multidimensional array. This is array of objects. Only possible method is coding logic in a loop. Hope this helps.Vinod Kumar– Vinod Kumar2015年10月26日 14:10:22 +00:00Commented 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")DBS– DBS2015年10月26日 14:14:38 +00:00Commented 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 firstDalorzo– Dalorzo2015年10月26日 14:18:54 +00:00Commented Oct 26, 2015 at 14:18
1 Answer 1
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);
answered Oct 26, 2015 at 14:10
Oleksandr T.
77.6k17 gold badges177 silver badges145 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
lang-js