如何过滤数组数组?

How to filter array of arrays?

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

我的 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
},

]

据我了解你的伪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

我想这就是您要找的:

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

得到答案。我犯了愚蠢的错误。

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