Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*так як я не зрозумів що саме викликало у вас питання, то я просто прокоментую деякі моменти, а ви зможете порівняти наше ставлення до них */
- /*
- невеличкий тест:
- let a = [1,3]
- let b = [1,3];
- console.log(a === b); // що виведе?
- // а так:
- let a = [1,3]
- let b = a;
- console.log(a === b); // що виведе?
- далі буде і про порівняння об'єктів (точніше посилань на них).
- */
- /* функцію переніс вгору, щоб не межувалася в коді*/
- function reverse(m, a, y) { /* параметри теж заслуговують на классні іменування!)) Після передачи у параметр m змінної arr на масив [1, 2, 3, 4, 5] вказують обидві ці змінні-посилання. На один й той самий пустий масив тепер вказують змінні- посилання y та arrReverse */
- console.log(`Довжина масиву arr в функції реверс ДО реверсу: ${m.length}`);
- console.log(`Значення довжини arr до реверсу: ${a}`)
- for (let j = 0; j < a; j++) {
- y.push(m.pop()); /* тут вже записуєте до раніше пустого масиву реверснутий [1, 2, 3, 4, 5], а сам [1, 2, 3, 4, 5]
- обнуляєте, тобто дістаєте з кінця (забираєте з нього) кожний з його елементів командою pop та додаєте до масиву на
- який посилаються змінні: y та arrReverse . При цьому на той масив що ви спустошуєте pop-ом як і раніше посилаються
- дві змінні: m та arr, хоча змінні arr та arrReverse недоступні у скоупі функції - вони посилаються саме на тіж
- самі масиви що і змінні m та y */
- }
- console.log(`Масив arr після видалення, має бути 0 - ${m}`);
- console.log(`Довжина після видалення має бути 0 - ${m.length}`);
- console.log(`Новий arrReverse масив має реверснути - ${y}`);
- console.log(`Масив arr після видалення: ${m}`);
- console.log(`Масив arr після прирівнювання ${m}`);
- console.log(`Масив arrReverse після прирівнювання ${y}`);
- return y; // повертаєте посилання на реверснутий масив , на нього все ще вказують дві змінні: y та arrReverse
- }
- let arr= []; // можна let arr = [1, 2, 3, 4, 5];
- arr = [1, 2, 3, 4, 5];
- let arrSize = 5;
- let arrReverse = []
- arr = (reverse(arr, arrSize, arrReverse)); /* раніше змінна arr посилалася на масив [1, 2, 3, 4, 5], тепер до змінної arr повернеться щось із функції, на що й буде встановлене її посилання, тобто сам масив [1, 2, 3, 4, 5] ми точно втратимо (якщо тільки не його ж будемо повертати з функції) */
- /*тепер змінна arr та arrReverse вказують на один й той самий масив, у цьому можна впевнитися :*/
- console.log('строге порівняння поверне true для змінних-посилань якщо вони посилаються на один й той самий об"єкт: ' + (arr === arrReverse));
- arr[1] = '888'; // тест щоб впевнитися
- console.log('Функція завершилась')
- console.log(`Масив arrReverse став: ${arrReverse}`);
- console.log(`Масив arr тепер: ${arr}`);
- // що тут сказати.. Гарного коду!)
- ааа, ще , замінив всі алерти на консольлоги, не дякуйте! а хоча...))
Add Comment
Please, Sign In to add comment