如何筛选数组数组

How to filter array of arrays?

本文关键字:数组 筛选 何筛选      更新时间:2023-09-26

我有一个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
},

]

据我从您的伪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,控制台,输出

我想这就是您想要的:

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;
        });