Поиск по json-массиву
Всем привет. Есть такой json-массив:
[{"name":"Dmitry", "lastname":"Ivanov"},{"name":"Dmitry", "lastname":"Petrov"}]
Как достать из него список всех фамилий, только если имя Dmitry? |
Dimaz,
Как-то так:
if (!Array.prototype.filter)
{
Array.prototype.filter = function(fun)
{
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var res = new Array();
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this)
{
var val = this[i];
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
var data = [{"name":"Dmitry", "lastname":"Ivanov"},{"name":"Dmitry", "lastname":"Petrov"}, {"name":"Dimaz", "lastname":"Petrov"}];
var filtered = data.filter(function (element, index, array)
{
return element.name == "Dmitry";
});
P.S. если юзать jquery, то так:
var arr = jQuery.grep(data , function (element, index) { return element.name == "Dmitry"; });
|
Я так сделал, пока отвечали. Вроде работает.
var x = [{"name":"Dmitry","lastname":"Zakharov"},{"name":"Oleg","lastname":"Ivanov"},{"name":"Dmitry","lastname":"Petrov"}];
var y = [];
for(var i=0, a=0; i<x.length; i++,a++){
if(x[i].name=="Dmitry"){
y[a] = x[i].lastname;
} else{a--;}
}
$('b').text(y);
Результат записал в массив y. Выводит Zakharov, Petrov. |
| Часовой пояс GMT +3, время: 13:05. |