DOMANDA [Javascript] funzione per destrutturare oggetti

Giulio95

Nuovo Utente
25
2
Salve a tutti.

Avendo presente l'assegnazione di destrutturazione in javascript, e che sto lavorando in ambiente Node.js.

esempio destrutturazione:
const oggetto = { proprieta'1, proprieta'2, proprieta'n }
const { proprieta'2 } = oggetto;

E' possibile creare una funzione per effettuare questa destrutturazione, alla quale passare di volta in volta, il nome della proprieta' da estrarre??

Per capirci con una sintassi del tipo:
function destrutturazione( nomeProprieta, { proprieta'1, proprieta'2, proprieta'n } ) {
//codice per destrutturare nomeProprieta dall'oggetto passato come secondo parametro.
}

o magari esiste qualche metodo o modulo adatto allo scopo, non riesco a capire.

Grazie mille a tutti in anticipo.
 
Ultima modifica da un moderatore:

pabloski

Utente Èlite
2,868
916
beh intanto la destrutturazione di qualsiasi cosa non sia un oggetto, è su base posizionale

solo per gli oggetti si può usare il trucco di usare nomi di variabili simili a quelli delle proprietà dell'oggetto

ma nel tuo caso la destrutturazione non serve a niente, perchè gli oggetti in js memorizzano le proprietà via array associativi, cioè puoi fare

JavaScript:
const nomeProp = 'blahblah';

const oggetto = {blahblah: 'boh'};

return oggetto[nomeProp]; // ritorna boh

in realtà potresti usare il destructuring con nome di proprietà dinamica, facendo così

JavaScript:
const { [nomeProp] } = oggetto;
return blahblah;

ma a che pro?
 

Giulio95

Nuovo Utente
25
2
Ciao e grazie mille della risposta, e anche dell'interesse =)
Volevo realizzare una funzione per estrarre i dati da mongodb, e che ritornasse direttamente un array di valori che va passato a un template .ejs

La destrutturazione serve ad estrarre il valore della proprieta scelta dai documenti JSON memorizzati su mongodb.

Per capirci posto il codice:

JavaScript:
const extractionValues = async function extraction(objConnectiondbSetter, collectionName, propertyFilter, propertyProjection, nameProperty) {
    let stabs = [];
    const coll = objConnectiondbSetter.connection.db.collection(collectionName);
    const cursor = coll.find(propertyFilter, propertyProjection);
    await cursor.forEach((element) => {
        stabs.push(element[nameProperty]);
    });
    return stabs;
}
exports.extractionValues = extractionValues;

la funzione prende mongoose, gli oggetti per filtrare e proiettare i documenti da mongodb, e la striga per scegliere la proprieta da estrarre da ogni documento trovato.

cosi sul file principale resto piu pulito, e il codice lo riutilizzo piu facilmente.

ho risolto ma accetto consigli

Saluti
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili