Filtrowanie i destrukturyzacja obiektów

0

Mam taki obiekt:

const obiekt = [
			{
			"type":"text",
     		"source":"A",
			},
			{
			"type":"photo",
   			"source":"B",
			},
			{
			"type":"text",
			"source":"B",
			},
   ]

Chciałbym teraz odfiltrować sobie te elementy, których type === "text", a następnie za pomocą destrukturyzacjacji przepisać do innego obiektu w celu dalszej obróbki.

Czyli coś takiego (uwaga: kod celowo błędny):
obiekt.filter(obiekt.type=="text").forEach(el => {// do something with text type})

0

Takie coś wydaje się działać. Aczkolwiek może istnieje jakiś inny "sprytniejszy i pr0" sposób?

obiekt.forEach(el => {if (el.type === "text") {// proceed with text type} else {//proceed with not text type} })

1

Robimy sobie tablice obiektów

const collections = [
  { type:"text", source:"A" },
  // ...
];

i dane możemy filtrować na kilkanaście sposobów w zależności od tego co chcesz z nimi dalej zrobić

  1. const textData = collections.filter(({ type }) => type === 'text');
    const photoData = collections.filter(({ type }) => type === 'photo');
    
    textData.forEach(({ type, source }) => {
      console.log(type, source);
    });
    
    photoData.forEach(({ type, source }) => {
      // ...
    });
    
  2. collections.forEach(({ type, source }) => {
      if (type === 'text') {
        // ...
      } else {
        // ...
      }
    })
    
  3. for (const { type, text } of collections) {
      if (type === 'text') {
          // ...
      }
    }
    
  4. ...

1
obiekt.filter(i => i.type === "text").map(i => ({...i}));

Map tworzy ci nowe obiekty na podstawie starego

0
rafal95p napisał(a):

Chciałbym teraz odfiltrować sobie te elementy, których type === "text", a następnie za pomocą destrukturyzacjacji przepisać do innego obiektu w celu dalszej obróbki.

Niepotrzebna ci do tego destrukturyzacja.

1 użytkowników online, w tym zalogowanych: 0, gości: 1