Как получить массив со значением в другом массиве?

#javascript

#javascript

Вопрос:

Я пытаюсь получить массив, который имеет значение в другом массиве, используя метод filter. Так, например, из этого

 [[], [{name:"shop", price: 48}],[]] 
  

к этому

 [{name:"shop", price: 48}]
  

Из консоли.я получаю журнал ниже {name:"shop", price: 48} , но когда я возвращаюсь v , я получаю все обратно —> [[], [{name:"shop", price: 48}],[]]

Чего мне не хватает?

 const a = [[], [{name:"shop", price: 48}],[]]

const output = a.map((value) => {
  return value.filter((v) =>{
    console.log(v)
    return v
  })
})
console.log(output);  

Комментарии:

1. Ваша функция map ничего не делает, кроме клонирования вашего исходного массива, так чего же вы ожидаете?

2. Что, если несколько массивов непустые, чего вы ожидаете в этих случаях?

3. Если вы хотите отфильтровать пустые массивы, примените такой фильтр.

Ответ №1:

Вы ищете это?

 const a = [[], [{name:"shop", price: 48}],[]]

const [ output ] = a.filter(v => v.length); // will filter out empty arrays

console.log(output);  

Ответ №2:

Мое решение объединения подмассивов в один массив:

 const a = [[], [{name:"shop", price: 12}], [{name:"shop", price: 34}]];

let res = [];
a.forEach((aItem) => res = res.concat(aItem));

console.log(res);
  

Вывод

 [ { name: 'shop', price: 12 }, { name: 'shop', price: 34 } ]