Sobes.tech

როგორ შეიძლება სხვა გზით მიიღოთ this-დან რიცხვითი მნიშვნელობა (Number(this)-ს გარეშე)?

157

/** * sumPromises ფუნქციის განხორციელება, რომელიც * დაპირებებს იღებს არგუმენტებად და აბრუნებს * მათი შედეგების ჯამს. * * ფუნქცია შეიძლება მიიღოს ნებისმიერი რაოდენობის არგუმენტი. * ნებისმიერ დაპირების API-ს გამოყენება შეიძლება. */ // აქ დაწერეთ კოდი // გამოყენების მაგალითი const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

157

/* სტანდარტული ნაკრებების (Set) მეთოდების გაფართოებისთვის საჭიროა შექმნათ intersection მეთოდი. ეს მეთოდი მიიღებს სხვა ნაკრებს და დაბრუნებს ახალ ნაკრებს, რომი იქნება თავდაპირველი და გადაცემული ნაკრებების გადაკვეთა, ანუ, შეიცავს მხოლოდ იმ ელემენტებს, რომლებიც ორივე ნაკრებშია. */ // თქვენი კოდი const set1 = new Set([1, 2, 3, 4]); const set2 = new Set([3, 4, 5, 6, 7, 8]); console.log(...set1.intersection(set2)) // 3 4 --- Set.prototype.intersection = function (set2) { const result = new Set(); for(const value of this) { if (set2.has(value)) result.add(value); } return result; } const set1 = new Set([1, 2, 3, 4]); const set2 = new Set([3, 4, 5, 6, 7, 8]); console.log(...set1.intersection(set2)) // 3 4

157

წერეთ sleep ფუნქცია, რომელიც აბრუნებს Promise-ს და დასრულდება მითითებული მილიწამების შემდეგ.

155

თუ asyncCall შეცდომით გამოიძახებს გადაცემულ callback-ს რამდენიმე ჯერ, რა მოხდება Promise-გაფუთკთან: პირველ რიგში შეცდომით, შემდეგ მონაცემებით და ბოლოს ისევ შეცდომით.

154

/** * შეასრულეთ compose ფუნქცია, რომელიც იღებს * ცვლად რაოდენობის ფუნქციებს და აბრუნებს ახალ ფუნქციას. * თითოეული ფუნქციის შედეგი გადაეცემა შემდეგს. */ // აქ კოდი const square = (x) => x * x; const times2 = (x) => x * 2; const sum = (a, b) => a + b; console.clear(); console.log(compose(square, times2)(2) === square(times2(2))); console.log(compose(square, times2, sum)(3, 4) === square(times2(sum(3, 4))));

153

სინამდვილე აპლიკაციაში სად შეიძლება იყოს სასარგებლო callLimit ფუნქცია ანგარიშის გადატვირთვის შესაძლებლობით?

152

რა განსხვავებაა 'key in result' შემოწმებასა და 'result.hasOwnProperty(key)'-ს შორის?

151

შეასრულეთ sumPromises ფუნქცია, რომელიც იღებს დაპირებებს არგუმენტებად და აბრუნებს მათი შედეგების ჯამს. ფუნქცია შეიძლება მიიღოს ნებისმიერი რაოდენობის არგუმენტები, შეიძლება გამოიყენოთ ნებისმიერი დაპირების API.

151

როგორ შეიძლება pseudo-massivი arguments-ს რეალურ მასივად გარდაქმნა? რამდენიმე მეთოდი დაასახელეთ.

150

რატომ არ არის sleep-ის შესრულების დრო ზუსტად 1000 და 2000 მილიწამი, არამედ ცოტა მეტი? რა გავლენას ახდენს შეფერხებაზე?

149

Promise.all-ის გარდა რა სხვა მეთოდებს იცნობ Promise API-სგან?

148

განსაზღვრეთ, არის თუ არა სტრიქონი 'პანგრამა' — სტრიქონი, რომელიც შეიცავს ყოველ ასოს მინიმუმ ერთხელ.

146

[isim] სთხოვა: თუ პარალელური განვითარება ხდება, შესრულებლებმა თავად განმარტეს თუ არა კონტრაქტები?

146

9. ნუსხა ტესტის დროს პროფესორ ფლოიდმა შენიშნა, რომ ზოგიერთი სტუდენტი ჩანაწერებს ცვლიდა. თავდაპირველად, ის ყველა სტუდენტს აძლევდა მეორე ქულას, მაგრამ პროფესორი კეთილი იყო და გადაწყვიტა სტუდენტები ორ ჯგუფად დაყო: მათ, ვინც ნუსხის ასაღებად ნებართვას აძლევდა, და პირველ ჯგუფს მხოლოდ მეორე ქულას აძლევდა. პროფესორმა ყველა სტუდენტის ცვლილი წყვილი დააფიქსირა. აუცილებელია განსაზღვრო, თუ შესაძლებელია სტუდენტების დაყოფა ორ ჯგუფად ისე, რომ ნებისმიერი ჩანაწერის გაცვლა მოხდეს ერთ ჯგუფის სტუდენტიდან მეორეზე. შესავალი ფორმატი პირველ ხაზზე განთავსებულია ორი რიცხვი N და M — სტუდენტების რაოდენობა და სტუდენტების ცვლილი წყვილების რაოდენობა (1 ≤ N ≤ 10^2, 0 ≤ M ≤ N(N-1)/2). შემდეგ, M ხაზზე, აღწერილია სტუდენტების წყვილები: ორი რიცხვი, რომლებიც შეესაბამება სტუდენტების ნომრებს, რომლებიც ცვლიდნენ ჩანაწერებს (სტუდენტების ნომრირება იწყება 1-დან, თითოეული წყვილი სტუდენტი მითითებულია არა უმეტეს ერთხელ). გამოსავალი ფორმატი უნდა გამოიტანოთ პასუხი პროფესორ ფლოიდის დავალებაზე. თუ შესაძლებელია სტუდენტების დაყოფა ორ ჯგუფად, დაწერეთ YES; წინააღმდეგ შემთხვევაში, NO.

144

რატომ გამოიყენება Array.prototype.slice.call(arguments)? როგორ მუშაობს call და apply?

144

წერეთ ფუნქცია strjoin ES5-ში rest ოპერატორის გარეშე

142

დაწესებულია სინქრონული ფუნქცია და დრო მილიწამებში. საჭიროა დაბრუნდეს ამ ფუნქციის ახალი ვერსია, რომლის შესრულებაც შეზღუდულია მითითებულ დროს. თუ ფუნქცია შესრულდება მითითებულ დროში — პირობა იხსნება მიღებული მონაცემებით. თუ არა — პირობა უარყოფილი იქნება სტრიქონით 'time limit exceeded'.

141

მესამე JavaScript კოდის ფრაგმენტის თითოეულისთვის განსაზღვრეთ, რა გამოჩნდება კონსოლში და ახსენით პრიმიტივების, ობიექტების და მითითებების გადათქმების განსხვავებები.

141

/** * isMonotonic ფუნქციის განხორციელება, რომელიც იღებს * რიცხვების მასივს და განსაზღვრავს, არის თუ არა ის * მონოტონური (არ ზრდადი ან არ კლებადი). * * @param {Array<number>} numbers - რიცხვების მასივი * @return {boolean} - თუ მასივი მონოტონურია, true, წინააღმდეგ შემთხვევაში false */ function isMonotonic(numbers) { // თქვენი კოდი აქ }

140
/7