Есть функция которая ищет 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);
Комментариев нет:
Отправить комментарий