# :blue_book: Array.prototype.copyWithin()
---
`copyWithin()` მეთოდს შეუძლია მასიმში ელემენტების შეცვლა ამავე მასივში არსებული ელემენტებით მასზე გადაწერით, უფრო ზუსტად, მასივში ერთი ელემენტი შეგიძლია შეცვალო ამავე მასივში არსებული მეორე ელემენტით. `copyWithin()` მმეთოდის გამოყენების დროს, იქმნება ახალი მასივი თუმცა მისი სიგრძე(length) რჩება უცვლელი.
---
# :pencil: Syntax/სინტაქსი
---
```
copyWithin(target)
copyWithin(target, start)
copyWithin(target, start, end)
```
`copyWithin()` მეთოდს შეგვიძლია გადავცეთ სამი არგუმენტი:
==target==
> ეს პარამეტრი დაფუძლებულია ნულოვან ბაზაზე, რაც
> გულისხმობს იმას რომ, ათვლა მასივში დაიწყება ნულიდან და შესაბამისი პარამეტრის მიხედვით განისაზღვრება ელემენტი.
> უშუალოდ target პარამეტრი გვეუბნება საიდან უნდა მოხდეს ცვლილება მასივში, რომელი ელემენტიდან უნდა მოხდეს ცვლილება.
:::danger
target პარამენტრი არის აუცილებელი! (Required)
:::
==`start`==
> ეს პარამეტრი ასევე დაფუძნებულია ნულოვან ბაზაზე, რომელიც გვეუბნება მასივის რომელი ელემენტიდან უნდა დაიწყოს დაკოპირება.
>
:::info
==start== პარამეტრი არის ნებაყოფილობითი(optional). ხოლო საწყის მნიშვნელობად მინიჭებული აქვს 0.
:::
==`end`==
> ეს პარამეტრი ასევე დაფუძნებულია ნულოვან ბაზაზე.
> მიგვითითებს სად მთავრდება მასივში დაკოპირების პროცესი.
:::info
==end== პარამეტრი არის ნებაყოფილობითი(optional).
:::
---
# :bulb: Description/აღწერა
---
copyWithin() მეთოდი აბრუნებს მოდიფიცირებულ მასივს.
---
# :key: Example/მაგალითი
---
```
const array1 = ['a', 'b', 'c', 'd', 'e'];
// ამ მაგალითში target პარამეტრი გვაქვს 0 შესაბამისად a
დან მოხდება გადაწერა, start პარამეტრად გვაქვს 3 რაც
გულისხმობს რომ მეოთხე ელემენტი მასივში (d) ეგ
დაკოპირდება, ხოლო end პარამეტრად გვაქვს 4, რაც გულისხმობს
რომ მასივში მეხუთე ელემენტთან (e) შეჩერდება კოპირების
პროცესი, საბოლოოდ მივიღეთ რომ დაკოპირდა (d) და რადგან
target გვქონდა 0, a ელემენტზე მოხდა d ელემენტის გადაწერა.
console.log(array1.copyWithin(0, 3, 4));
// expected output: Array ["d", "b", "c", "d", "e"]
// copy to index 1 all elements from index 3 to the end
console.log(array1.copyWithin(1, 3));
// expected output: Array ["d", "d", "e", "d", "e"]
```
---
### :bookmark_tabs: resources / წყარო
---
https://www.w3schools.com/jsref/jsref_copywithin.asp
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin
---