Πώς μπορώ να αφαιρέσω μερικά πεδία από την απάντηση του πίνακα JSON χρησιμοποιώντας JavaScript;


Απάντηση 1:

Είναι λίγο ασαφές τι εννοείτε με τους τομείς, οπότε ας το σπάσουμε αυτό στις πιο κοινές επιχειρήσεις.

Το JSON είναι μια μορφή δεδομένων κειμένου που μετατρέπεται εύκολα σε φυσικούς τύπους δεδομένων. Στο JavaScript το κείμενο συνήθως χειρίζεται ως μια συμβολοσειρά που κωδικοποιείται στη συνέχεια σε αντικείμενα JavaScript χρησιμοποιώντας το JSON.parse

.

Λόγω των εξής:

  1. "όνομα": "μπαρόνα", "χρώμα": "κίτρινο"}, {"όνομα": "καρότο" "χρώμα": "πορτοκαλί"}] `; const jsonArray = JSON.parse (json);

Οι πιο συνήθεις λειτουργίες είναι το φιλτράρισμα

(αφαιρώντας συγκεκριμένα στοιχεία με ορισμένα κριτήρια) και χαρτογράφηση

(κάνοντας κάποιο είδος μετασχηματισμού σε κάθε στοιχείο).

Χειροκίνητα είχαμε μεθόδους συστοιχιών και για τα δύο από το ES5. Εάν, με την επιλογή "Αφαιρέστε μερικά πεδία", εννοείτε ότι θέλετε να αφαιρέσετε μερικά στοιχεία από τον πίνακα που θα μπορούσατε να κάνετε έτσι:

  1. const μόνοYellowItems = jsonArray.filter (item => item.color === 'κίτρινο');

Αν "αφαιρέσετε μερικά πεδία" εννοείτε να αφαιρέσετε ορισμένες ιδιότητες που θα μπορούσατε να χρησιμοποιήσετε

Array.prototype.map

.

  1. const onlyNames = jsonArray.map (item => {// επιστρέφει ό, τι είναι σχετικό από κάθε στοιχείο (item) επιστρέφει {name: item.name}}) // ή πιο σύντομα με destructuring // const onlyNames = jsonArray.map ({όνομα}) => ({όνομα})).

Απάντηση 2:

Ο πιο συνηθισμένος τρόπος είναι η χρήση του

.χάρτης

Μέθοδος της συστοιχίας.

Πρώην:

  1. // Υποθέτουμε ότι αυτό ήταν αναλυτικό από την πραγματική JSON dataconst δεδομένα = [{foo: 1, bar: 'a', bas: true}, {foo: 5, bar: 'c', bas: false}]; . {({foo, bas}) => ({foo, bas})) // // Αποτελέσματα στο // [// {foo: 1, bas: true}, // {foo: } //].

Επεξεργασία:

Στο παραπάνω παράδειγμα, προσθέτω κάποια καταστροφή για απλοποίηση, αλλά αυτό μπορεί να μην είναι ο απλούστερος τρόπος, εάν τα δεδομένα είναι πολύπλοκα. Θα εξακολουθείτε να χρησιμοποιείτε τη μέθοδο χάρτη, αλλά ενδέχεται να καταλήξετε χρησιμοποιώντας κατασκευές όπως ο υπόλοιπος χειριστής ή ο διαχειριστής διαγραφής (προσεκτικά με τη διαγραφή, έχει παρενέργειες).


Απάντηση 3:

στο javascript json μπορεί να είναι ένα αντικείμενο.

Φανταστείτε λοιπόν ότι το jsonArray σας είναι σε μεταβλητή jsonArray

const jsonArray = {κάτι: 'χρήσιμο', άχρηστο: 1};

Εάν διαγράψετε το

άχρηστος

κλειδί, που θα επηρεάσει το αρχικό αντικείμενο, αυτό που ίσως θέλετε να αποφύγετε, αλλά η ταχύτερη σύνθεση είναι:

διαγραφή jsonArray.useless;

Όπως είπα, αυτό θα μπορούσε να είναι ένα ζήτημα για τον κώδικα σας, επειδή μερικοί λόγοι ήταν το «άχρηστο» κλειδί εκεί, τόσο καλύτερα να κλωνοποιήσετε το αρχικό αντικείμενο:

const jsonResponse = ... jsonArray

και στη συνέχεια διαγράψτε:

διαγραφή jsonResponse.useless;

Σε αυτή την περίπτωση το αρχικό αντικείμενο παραμένει ανέγγιχτο.