window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster υπάρχει ήδη') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Τρεις χρήσιμες τελείες - το υπόλοιπο και η εξάπλωση σε JavaScript - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2019-11-25
Ανάπτυξη λογισμικού

Τρεις χρήσιμες τελείες - το υπόλοιπο και η εξάπλωση στο JavaScript

Lukasz Kolko

Η ECMAScript 2015 μας έφερε πολλά νέα, τα οποία οδήγησαν σε μεγάλο αριθμό βελτιώσεων. Σήμερα θα ρίξουμε μια πιο προσεκτική ματιά σε δύο χαρακτηριστικά που κάνουν τη ζωή μας πιο εύκολη. Γνωρίστε τα υπόλοιπα paremeters και τη σύνταξη εξάπλωσης.

Παράμετροι ανάπαυσης

Η σύνταξη rest μας επιτρέπει να αναπαραστήσουμε έναν απεριόριστο αριθμό ορίων ως πίνακα. Ρίξτε μια ματιά σε μια συνάρτηση που αθροίζει όλα τα ορίσματα που έχουν περάσει.

const sum = (...args) => args.reduce((prev, current) => prev + current),

console.log(sum(1, 2)); // 3
console.log(sum(1, 2, 3)); // 6

Σύνταξη εξάπλωσης

Ο τελεστής εξάπλωσης μας επιτρέπει να επεκτείνουμε τα επαναλήψιμα αντικείμενα σε μεμονωμένα στοιχεία. Αυτή η λειτουργικότητα είναι αντίθετη από αυτή που πετύχαμε με τις υπόλοιπες παραμέτρους. Μπορεί να εφαρμοστεί σε όλους τους επαναληπτικούς πίνακες, όπως πίνακες, αντικείμενα, σύνολα, χάρτες κ.λπ.

const sum = (x, y, z) => x + y + z,
const numbers = [1, 2, 3],

console.log(sum(...numbers)); // 6

Τρεις τελείες σε πραγματικές περιπτώσεις χρήσης

Αντιγραφή ενός πίνακα

Η σύνταξη spread πηγαίνει ουσιαστικά ένα επίπεδο βαθύτερα κατά την αντιγραφή ενός πίνακα. Ένα επίπεδο σημαίνει ότι αντιγράφεται το πρώτο επίπεδο αναφορών.

const array0 = [1, [2, 3]],
const array1 = [...array0],

console.log(array1); // [1, [2, 3]]

Δημιουργία ενός πίνακα μοναδικών στοιχείων

Δημιουργήστε το Set που αποθηκεύει μόνο μοναδικά στοιχεία και μετατρέψτε το σε πίνακα.

const array = [1, 1, 2, 3],
const uniqueElements = [...new Set(array)],

console.log(uniqueElements); // [1, 2, 3]

Συνδέστε πίνακες

const array0 = [1, 2],
const array1 = [3, 4],
const concated = [...array0, ...array1],

console.log(concated); // [1, 2, 3, 4]

Τεμαχισμός ενός πίνακα

const [firstElement, ...newArray] = [1, 2, 3, 4],

console.log(firstElement); // 1
console.log(newArray); // [2, 3, 4]

Μπορούμε επίσης να αφαιρέσουμε n τα πρώτα στοιχεία με κόμμα.

const [, , , , ...newArray] = [1, 2, 3, 4],

console.log(newArray); // [4]

Εισαγωγή ενός πίνακα στην αρχή ενός άλλου πίνακα

const array0 = [4, 5, 6],
const array1 = [1, 2, 3],
const newArray = [...array1, ...array0],

console.log(newArray); // [ 1, 2, 3, 4, 5, 6 ]

Δημιουργία ενός πίνακα αριθμών από το 0 έως το n

const array = [...Array(10)].map((_, i) => i),

console.log(array); // [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

Αποδόμηση ενός αντικειμένου

const { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 },

console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }

Δημιουργία αντιγράφου ενός αντικειμένου

let person = {
  name: 'John',
  age: 25,
  wallet: {
    sum: 500,
    νόμισμα: 'USD'
  }
};
let personCopy = { ...person },

console.log(personCopy),
// {
// name: 'John',
// age: 25,
// wallet: {
// sum: 500,
// νόμισμα: 'USD'
// }
// }

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

person.age = 20,

console.log(person.age); // 20
console.log(personCopy.age); // 25

Παρατηρήστε ότι η σύνταξη εξάπλωσης δημιουργεί "ρηχό" αντίγραφο του αντικειμένου, οπότε η ιδιότητα "πορτοφόλι" θα αντιγραφεί μόνο ως αναφορά στο αρχικό υπο-αντικείμενο. Για βαθιά κλωνοποίηση μπορείτε να χρησιμοποιήσετε την προσέγγιση JSON stringify/parse ή τη μέθοδο 'cloneDeep' που παρέχει η Lodash ανάλογα με την πολυπλοκότητα του αντικειμένου σας. Σε ορισμένες περιπτώσεις αυτή η μέθοδος μπορεί επίσης να είναι χρήσιμη:

let personCopy = { ...person, wallet = {...person.wallet}}, 

Προσθήκη ιδιοτήτων υπό όρους σε αντικείμενα

Μπορούμε να προσθέσουμε υπό όρους ιδιότητες σε ένα νέο αντικείμενο που δημιουργούμε κάνοντας χρήση του τελεστή εξάπλωσης μαζί με την αξιολόγηση βραχυκυκλώματος.

const colors = {
  red: '#ff0000',
  πράσινο: '#00ff00',
  blue: '#0000ff'
};
const black = {
  black: '#000000'
};

let extraBlack = false,
let conditionalMerge = {
  ...colors,
  ...(extraBlack ? black : {})
};

console.log(conditionalMerge),
// {
// red: '#ff0000',
// πράσινο: '#00ff00',
// blue: '#0000ff'
// }

extraBlack = true,
conditionalMerge = {
  ...colors,
  ...(extraBlack ? black : {})
};

console.log(conditionalMerge),
// {
// red: '#ff0000',
// πράσινο: '#00ff00',
// blue: '#0000ff'
// μαύρο: '#000000'
// }

Διαχωρισμός μιας συμβολοσειράς σε χαρακτήρες

Αυτό είναι παρόμοιο με την κλήση της μεθόδου split με κενή συμβολοσειρά ως παράμετρο.

const split = [...'qwerty'],
console.log(split); // [ 'q', 'w', 'e', 'r', 't', 'y' ]

Συμβουλευτική για την ανάπτυξη ψηφιακών προϊόντων

Διαβάστε περισσότερα:

3 κοινές προκλήσεις της ανάπτυξης προϊόντων λογισμικού για νεοσύστατες επιχειρήσεις

Ο καλύτερος τύπος έργων για Java

Πώς να μην σκοτώσετε ένα έργο με κακές πρακτικές κωδικοποίησης;

Σχετικά άρθρα

Ανάπτυξη λογισμικού

Κατασκευάστε μελλοντικά ασφαλείς εφαρμογές Web: γνώσεις από την ομάδα εμπειρογνωμόνων του The Codest

Ανακαλύψτε πώς η The Codest υπερέχει στη δημιουργία κλιμακούμενων, διαδραστικών εφαρμογών ιστού με τεχνολογίες αιχμής, παρέχοντας απρόσκοπτη εμπειρία χρήστη σε όλες τις πλατφόρμες. Μάθετε πώς η τεχνογνωσία μας οδηγεί στον ψηφιακό μετασχηματισμό και την επιχειρηματική...

THECODEST
Ανάπτυξη λογισμικού

Top 10 εταιρείες ανάπτυξης λογισμικού με έδρα τη Λετονία

Μάθετε για τις κορυφαίες εταιρείες ανάπτυξης λογισμικού της Λετονίας και τις καινοτόμες λύσεις τους στο τελευταίο μας άρθρο. Ανακαλύψτε πώς αυτοί οι τεχνολογικοί ηγέτες μπορούν να βοηθήσουν στην ανύψωση της επιχείρησής σας.

thecodest
Λύσεις Enterprise & Scaleups

Βασικά στοιχεία ανάπτυξης λογισμικού Java: Α Guide to Outsourcing Successfully (Οδηγός για την επιτυχή εξωτερική ανάθεση)

Εξερευνήστε αυτόν τον βασικό οδηγό για την επιτυχή ανάπτυξη λογισμικού outsourcing Java για να αυξήσετε την αποδοτικότητα, να αποκτήσετε πρόσβαση στην τεχνογνωσία και να οδηγήσετε την επιτυχία των έργων με The Codest.

thecodest
Ανάπτυξη λογισμικού

Ο απόλυτος οδηγός για το Outsourcing στην Πολωνία

Η έξαρση της outsourcing στην Πολωνία οφείλεται στις οικονομικές, εκπαιδευτικές και τεχνολογικές εξελίξεις, που ευνοούν την ανάπτυξη της πληροφορικής και το φιλικό προς τις επιχειρήσεις κλίμα.

TheCodest
Λύσεις Enterprise & Scaleups

Ο πλήρης οδηγός εργαλείων και τεχνικών ελέγχου πληροφορικής

Οι έλεγχοι ΤΠ διασφαλίζουν ασφαλή, αποτελεσματικά και συμβατά συστήματα. Μάθετε περισσότερα για τη σημασία τους διαβάζοντας ολόκληρο το άρθρο.

The Codest
Jakub Jakubowicz CTO & Συνιδρυτής

Εγγραφείτε στη βάση γνώσεών μας και μείνετε ενήμεροι για την τεχνογνωσία από τον τομέα της πληροφορικής.

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

    elGreek
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek