Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象数组的嵌套过滤_Javascript_Arrays_Json_Vue.js - Fatal编程技术网

Javascript 对象数组的嵌套过滤

Javascript 对象数组的嵌套过滤,javascript,arrays,json,vue.js,Javascript,Arrays,Json,Vue.js,我有一个常量包,它包含一个对象标记数组 const packages = [{ "id":"11", "object_tags":[ { "id":"400", "tag":{ "id":"30", "name":"Sample Tag" }, } ], }, { "id":"12", "object_tags":[ {

我有一个常量
,它包含一个
对象标记数组

const packages = [{
   "id":"11",
   "object_tags":[
      {
         "id":"400",
         "tag":{
            "id":"30",
            "name":"Sample Tag"
         },
      }
   ],
},
{
   "id":"12",
   "object_tags":[
      {
         "id":"401",
         "tag":{
            "id":"31",
            "name":"Lost"
         },
      }
   ],
}]
我想过滤那些只有标签名为
Lost
的包。所以我尝试了
.filter()

但我得到了一个错误:

未捕获的TypeError:无法读取未定义的属性“标记”

所以我尝试了嵌套
.filter()

但现在它只返回整个数组,没有任何过滤


我错过了什么?

我知道了。我使用了
.some()


就快到了,使用嵌套过滤器时,还需要获得第一个过滤器条件。。在这种情况下,可以使用长度>0的条件。例:

this.taggedOrders = packages.filter(p => p.object_tags.filter(t => t.tag.name === 'Lost').length > 0);
this.taggedOrders = packages.filter(item => item.object_tags.filter(x => x.tag.name === 'Lost'));
this.taggedOrders = packages.filter(item => item.object_tags.some(x => x.tag.name === 'Lost'));
this.taggedOrders = packages.filter(p => p.object_tags.filter(t => t.tag.name === 'Lost').length > 0);