Страницы

Поиск по вопросам

суббота, 22 июня 2019 г.

Как реализовать поиск по ключу объекта?

Есть функция которая ищет value в объекте. Как можно сделать так, чтоб искать можно было по ключу?
Например сейчас работает так :
когда у функции search('r', items) аргумент rm то выдаст слова где есть r.
// ["bar", "lorem", "dolor"]
А было б неплохо если можно было искать и по ключам. Например так :
если аргументом будет foo, должно выдать: // ["bar", "lorem", "dolor"]
а если аргумент bar то должно выдать: ["amet","ipsum","dolor"]
вся функция :
function search(s, arr) { var matches = []; for (var i = arr.length; i--;) { for (key in arr[i]) { if (arr[i].hasOwnProperty(key) && arr[i][key].indexOf(s) > -1) matches.push(arr[i][key]); } } return matches; }; var items = [{ "foo": "bar", "bar": "sit" }, { "foo": "lorem", "bar": "ipsum" }, { "foo": "dolor", "bar": "amet" }]; search('r', items); // ["bar", "lorem", "dolor"]


Ответ

Аналогично же:
function search(s, arr) { var matches = [];
for (var i = arr.length; i--;) { for (key in arr[i]) { if (arr[i].hasOwnProperty(key) && key.indexOf(s) > -1) { matches.push(arr[i][key]); } } } return matches; };
var items = [{ "foo": "bar", "bar": "sit" }, { "foo": "lorem", "bar": "ipsum" }, { "foo": "dolor", "bar": "amet" }];
search('foo', items);

Комментариев нет:

Отправить комментарий