Удалить или отфильтровать объект во вложенном массиве (Javascript) - PullRequest
0 голосов
/ 13 июля 2020

На основе такого массива:

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

Как я могу получить что-то вроде этого:

// Result of filtering an object where key is 'x1' and value is greater than 1
p === [
        {x: [
              {x1: 2},
            ]
        },
      ];

Ответы [ 5 ]

1 голос
/ 13 июля 2020
p = p.map(v => {
    v.x = v.x.filter(({ x1 }) => x1 > 1)
    return v
})

или (более короткий синтаксис)

p = p.map(v => (v.x = v.x.filter(({ x1 }) => x1 > 1), v))
0 голосов
/ 13 июля 2020

использовать карту и фильтр

var p = [
  {x: [{x1: 1}, {x1: 2}]},
];
result=p.map((o)=>({...o.x.filter(y=>y.x1>1)}))
console.log(result)
0 голосов
/ 13 июля 2020

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

0 голосов
/ 13 июля 2020

Этот код вернет массив объектов со свойством 'x1' больше 1.

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

let filtered = p.map(obj => obj.x.filter(y => y.x1 > 1));
console.log(filtered);
0 голосов
/ 13 июля 2020

для создания нового массива q с желаемыми свойствами

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

или, если вы sh, чтобы изменить массив p на месте

p[0].x = p[0].x.filter( (x) => x.x1 > 1 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...