Sobes.tech
Junior

Ի՞նչ է տարբերությունը spread և rest օպերատորների միջև։

sobes.tech AI

Պատասխան AI-ից

Տարածման օպերատոր (...) ընդլայնում է կրկնվող օբյեկտները (մասիվներ, տողեր) առանձին տարրեր և հաճախ օգտագործվում է մասիվների պատճեններ ստեղծելու, օբյեկտները միացնելու կամ արգումենտներ փոխանցելու համար։ Հետագծման (...) օպերատորը հավաքում է մնացած տարրերը մեկ մասիվի մեջ, օգտագործվում է դեստրակտուրացման ժամանակ կամ ֆունկցիաների սահմանման ժամանակ արգումենտներ հավաքելու համար:

Օգտագործման օրինակներ՝

// Մասիվի պատճեն ստեղծել
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]

// Մասիվների միացում
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]

// Արգումենտներ փոխանցել ֆունկցիային
function sum(a, b, c) {
  return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6

Օգտագործման օրինակներ՝

// Մնացած տարրերը հավաքել դեստրակտուրացման ժամանակ
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]

// Արգումենտներ հավաքել ֆունկցիայում
function logArguments(arg1, ...restArgs) {
  console.log(arg1); // առաջին արգումենտ
  console.log(restArgs); // մնացած արգումենտների զանգված
}
logArguments(1, 2, 3, 4); // Տպում է 1 և [2, 3, 4]

Հիմնական տարբերությունը նրանց նպատակում է՝ spread լայնացնում է, rest հավաքում է։