6 of 17 menu

JavaScript-ში for-in ციკლით მასივის გადაყოლის შეცდომა

მასივის გადაყოლისთვის უნდა გამოიყენოთ for-of ციკლი. ზოგჯერ, თუმცა, დამწყები პროგრამისტები შეცდომით ცდილობენ გამოიყენონ for-in ციკლი. მოდით შევხედოთ ამ შეცდომის დამახასიათებელ ნიშნებს.

დავუშვათ, გვაქვს მასივი:

let arr = ['a', 'b', 'c'];

მოდით გადავუაროთ ამ მასივის ელემენტებს და ჩავწეროთ ისინი ერთ სტრიქონში.

რაღაც პროგრამისტმა უკვე გადაჭრა ეს ამოცანა, მაგრამ შეცდომით გამოიყენა for-in ციკლი. მოდით შევხედოთ, რა გამოუვიდა:

let res = ''; for (let elem in arr) { res += elem; } console.log(res); // გამოიტანს '012'

ამრიგად, შედეგად მივიღებთ სტრიქონს '012', და არა 'abc'. მოდით გავარკვიოთ, რატომ მოხდა ასე.

საერთოდ, რატომ მოხდა მასივის გადაყოლა for-in ციკლით? საქმე ისაა, რომ JavaScript-ში მასივი ობიექტის კონკრეტული შემთხვევაა. ამიტომ, სინამდვილეში ამ თვალსაზრისით ეს კორექტული კოდია. მაგრამ ასე კეთება არ უნდა.

საქმე ისაა, რომ for-in ზოგიერთ პირობებში შეიძლება "დაიჭიროს" დამატებითი რამ, და თქვენ მასივის ელემენტების გარდა გადაყოლისას მიიღებთ რაიმე პარაზიტულ რამეს. მასივები გადაუარეთ მხოლოდ for-of ციკლით.

ახლა კი გავარკვიოთ, რატომ ვხედავთ ასეთ უცნაურ შედეგს. საქმე ისაა, რომ for-in-ით გადაყოლის დროს ცვლადში elem სინამდვილეში შევა გასაღებები, მიუხედავად ამ ცვლადის მოტყუების სახელისა.

მოდით შევასწოროთ დაშვებული შეცდომა და დავწეროთ კორექტული კოდი:

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // გამოიტანს 'abc'
ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა