如何过滤数组数组?

时间:2015-02-12 07:27:52

标签: javascript arrays json underscore.js

我有一个JSON数据。我将这些数据推送到另一个数组。我面临的问题是,我想过滤数据attrs具有src属性的数组。并将这些数组推送到另一个数组。任何人都可以帮助我。我没有办法做到这一点。

我的Json数据如下:

DATA:

[
 {
  "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
},

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我认为这就是你要找的东西:

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

有关javascript数组filtersome的更多信息:

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

答案 2 :(得分:0)

得到了答案。我做的很傻。

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