简体   繁体   English

删除或过滤嵌套数组中的 object (Javascript)

[英]Delete or filter an object in a nested array (Javascript)

Based on an array like this:基于这样的数组:

 var p = [
           {x: [
                 {x1: 1}, 
                 {x1: 2},
               ]
           },
         ];

How can I get something like this:我怎样才能得到这样的东西:

// Result of filtering an object where key is 'x1' and value is greater than 1
p === [
        {x: [
              {x1: 2},
            ]
        },
      ];
p = p.map(v => {
    v.x = v.x.filter(({ x1 }) => x1 > 1)
    return v
})

or (shorter syntax)或(更短的语法)

p = p.map(v => (v.x = v.x.filter(({ x1 }) => x1 > 1), v))

to create a new array q with the desired properties创建一个具有所需属性的新数组 q

var q = [
    {x: p[0].x.filter( (x) => x.x1 > 1 ) }
]

or if you wish to change the array p in place或者如果你想改变数组 p 就地

p[0].x = p[0].x.filter( (x) => x.x1 > 1 )

This code will return an array of objects with property 'x1' greater than 1.此代码将返回属性“x1”大于 1 的对象数组。

 var p = [{x: [{x1: 1}, {x1: 2}]}]; let filtered = p.map(obj => obj.x.filter(y => y.x1 > 1)); console.log(filtered);

var result = p[0].x.find(x = x.x1 > 1) var 结果 = p[0].x.find(x = x.x1 > 1)

use map and filter使用 map 和过滤器

 var p = [ {x: [{x1: 1}, {x1: 2}]}, ]; result=p.map((o)=>({...oxfilter(y=>y.x1>1)})) console.log(result)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM