Результат запроса Mysql, используя lodash из json array

У меня JSON выглядит так

[{"id":"7","name":"hello","username":"hell7s692","password":"dAggzyFMnBXq3RjoTWoJ3ndBkGhyU6njT2ZPlNfXVV8+XU3vvrTaULUAbPcmsqgj1NpXOpzieKRXWox\/BVcYrA==","email":"hello@gmail.com","mobile_number":"7736527089","address":"hello","date":"24 Jan 2016 12:14:02","active":"1","commission":"5"}, {"id":"7","name":"hello","username":"hell7s692","password":"dAggzyFMnBXq3RjoTWoJ3ndBkGhyU6njT2ZPlNfXVV8+XU3vvrTaULUAbPcmsqgj1NpXOpzieKRXWox\/BVcYrA==","email":"hello@gmail.com","mobile_number":"7736527089","address":"hello","date":"24 Jan 2016 12:14:02","active":"1","commission":"5"} ] 

Из этого я хочу получить новый json, который соответствует условию в виде запроса

т.е. я хочу получить json с условием

получить весь объект json с именем начинать с буквы

Аналогичный запрос mysql, where name like he%

В настоящее время я знаю только о matches но возвращает массив только с точным соответствием.

 var users = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false } ]; _.filter(users, _.matches({ 'age': 40, 'active': false })); // → [{ 'user': 'fred', 'age': 40, 'active': false }] 

Это будет возвращаться только с точным совпадением.

Вместо использования _.matches () вы можете использовать _.startsWith () для соответствия первым n-символам, которые вам нужны. Например, если вы хотите совместить имя, начинающееся с «he», вы можете сделать что-то вроде этого:

 var result = [{ name: 'hello' }, { name: 'healthy' }]; _.filter(result, function(obj) { return _.startsWith(obj.name, 'he'); }); 

Это должно совпадать с обоими.

Вы также можете использовать регулярное выражение для их соответствия:

 _.filter(result, function(obj) { return obj.name.search(/he/i) === 0; // i = ignore case }); 

'i' in '/ he / i' означает игнорировать регистр, так что это будет соответствовать name = 'Hello'.

search () возвращает 1-ю позицию найденного шаблона, возвращает -1, если не найден. Поэтому, если вам нужно найти шаблон в любом месте строки вместо начала с начала, вы можете проверить на поиск ()> = 0. Итак

 _.filter(result, function(obj) { return obj.name.search(/he/i) >= 0; }); 

будет соответствовать «привет», «оболочка», «здоровый», «the» и т. д.