2015-02-12 4 views
-2

У меня есть данные JSON. Я переношу эти данные в другой массив. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу фильтровать массив, данные которого attrs имеет src. И нажмите этот массив на другой массив. Может кто-нибудь поможет мне в этом. Я не получаю способ сделать это.
Как фильтровать массив массивов?

Мои Json данные, как:

ДАННЫЕ:

[ 
{ 
    "data":{ 
}, 
    "type":"image", 
    "attrs":{ 
    "x":92, 
    "y":163, 
    "width":100, 
    "height":100, 
    "src":"http://localhost:63342/wodrobs/app/scripts/views/img/top.jpg", 
    "cursor":"move", 
    "opacity":1 
    }, 
    "transform":"", 
    "id":0 
}, 
{ 
    "data":{ 
    }, 
    "type":"path", 
    "attrs":{ 
    "fill":"none", 
    "stroke":"#000", 

    "stroke-dasharray":"- ", 
    "opacity":0.5 
    }, 
    "transform":"", 
    "id":17 
}, 

]

+0

Можете ли вы разместить свои реальные данные, выше недействительна. – dfsq

+0

Реальные данные слишком велики. В любом случае, я отправляю сообщения. – Ved

+0

@dfsq Я разместил реальные данные .. – Ved

ответ

0

получил ответ. я делал глупую ошибку.

var filterData= _.filter(jsonData, function (data) { 
      return data.attrs.src; 
     }); 
0

Насколько я понял из вашего псевдо-JSON, вы можете сделать так:

//your data 
var a = [ 
      {'src':"a.src"}, 
      {'id':"someid"}, 
      {'src':"b.src"} 
]; 

//the result array 
var result = []; 


for(i=0; i<a.length;i++){ 
    var e = a[i]; 
    if(e.src){ 
    result.push(e); 
    } 
} 

console.log(result); 

http://jsbin.com/hujicopuca/1/edit?html,js,console,output

0

Я думаю, что это то, что вы ищете:

function HasSrcProperty(value, index, ar) {  
    return value.some(elem => elem.indexOf("src") > -1)  
} 
var result = yourJsonArray.filter(HasSrcProperty); 

Для получения дополнительной информации о Java-массив filter и some:

https://msdn.microsoft.com/en-us/library/ie/ff679973%28v=vs.94%29.aspx

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/some