honey 
    
    
        
        
        
        и видимо оно "запушится в конец"
    
 
    
    Александр 
    
    
 
    
    Александр 
    
    
 
    
    honey 
    
    
        
        
        
        а куда
    
 
    
    honey 
    
    
        
        
        
        щас минуту...
    
 
    
    Hide 
    
    
 
    
    Hide 
    
    
        
        
        
        ясно ))
    
 
    
    Hide 
    
    
        
        
        
        ничоси
    
 
    
    Александр 
    
    
        
        
        
        а теперь typeof arr
    
 
    
    Александр 
    
    
        
        
        
        ))
    
 
    
    Hide 
    
    
        
        
        
        а для чего это? ))
    
 
    
    honey 
    
    
        
                    
                        
                            
                            неа))
                        
                    
                
        
        
        опа. да. его нет в массиве... Оно где? оно же достается у массива по этому ключу
    
 
 
    
    Александр 
    
    
        
        
        
        arr._proto_ так же проверить можно))
    
 
    
    Hide 
    
    
 
    
    Hide 
    
    
        
        
        
        плохо запомнил когда то скоро дойду освежу память ))
    
 
    
    Александр 
    
    
        
        
        
        а можно вот так)
        let arr = {0:'t',1:'e',2:'s',3:'t', length:4};
        arr.__proto__=Array.prototype;
        console.log(arr.pop());
        console.log(arr.pop());
        console.log(arr.pop());
        console.log(arr.pop());
    
 
    
    Александр 
    
    
        
        
        
        Или вот так:
        let arr = Array.from({length:100},(el, index)=>index)
        console.log(arr.length);
        console.log(arr)
    
 
    
    🏴☠️ 
    
    
 
    
    🏴☠️ 
    
    
        
        
        
        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
    
 
    
    Hide 
    
    
 
    
    Александр 
    
    
        
                    
                        
                            
                            опа. да. его нет в массиве... Оно где? оно же достается у массива по этому ключу
                        
                    
                
        
        
        В JS все является объектом.
        Просто у каждого объекта разный прототип. Кто-то создается от класса Object, кто-то от класса Array и тп)
        В зависимости от кого наследуюется объект, он получает все те же функции и свойства.
        Но т.к. в JS наследование прототипное, то мы можем динамически менять прототип объекта, а соответственно и его свойства))
        А тк все является объектов, то практически всему можно записать новый атрибут через blabla['новый атрибут']
    
 
 
    
    Hide 
    
    
 
    
    Hide 
    
    
        
        
        
        а там чел не объяснил откуда это
    
 
    
    Hide 
    
    
        
        
        
        вообще да, многие курсы от замыливания глаз не идеальны ) объясняют одну тему а там нюансы всякие про которые забывают, ведь им оно понятно а нам то нет )
    
 
    
    Александр 
    
    
        
        
        
        class Student{ constructor(name){this.name=name}}
        let p1 = new Student('pasha');
        let p2 = p1.constructor('sasha');
        let p3 = Object.create(Object.getOwnPrototype(p2), Object.getOwnPropertyDescriptors(p2));
    
 
    
    Александр 
    
    
        
        
        
        или по старинке)))
        
        function Human(name, surname, sex) {
            this.name = name;
            this.surname = surname;
            this.sex = sex;
        }
        
        let anna = new Human('Anna', 'Ivanova', 'female');
        
        Human.prototype.getFullName = function () { return ${this.name} ${this.surname} };
        
        console.log(anna.getFullName());
    
 
    
    Александр 
    
    
        
        
        
        Ну ладно) Далеко до этого еще)
    
 
    
    Александр 
    
    
        
        
        
        Ну и уберем у цикла for скобочки фигурные))
        
        function multiplyNums(num1, num2) { return num1 * num2 }
        let array = [1, 3, 5]
        for (let i = 0;
            i < array.length;
            array[i] = multiplyNums(array[i], i), i++
        );
        console.log(array);
    
 
    
    Hide 
    
    
 
    
    Hide 
    
    
        
        
        
        Несколько часов курса до классов
    
 
    
    Hide 
    
    
        
        
        
        Сегодня хватит мозг устал
    
 
    
    Александр 
    
    
        
        
        
        ну и деструктуризацию в форе тоже никто не отменял))
        let list = [
            {id:0,length:2},
            {id:1,length:8},
            {id:2,length:3},
        ]
        
        for (const {id,length} of list) console.log(id,': ',length)
    
 
    
    🏴☠️ 
    
    
 
    
    Александр 
    
    
        
        
        
        А так да)
    
 
    
    🏴☠️ 
    
    
 
    
    Александр 
    
    
        
        
        
        мне тут задачку тестовую на тимлида прислали)
        Нужно на питоне за линейное время собрать дерево))
        https://docs.google.com/document/d/1KLKswR95oVZu-CRYPN79zXGGXzsp5SqTteX9y2daNKU/edit
    
 
    
    Александр 
    
    
        
        
        
        В целом, что на питоне что на js одинаково решается))
    
 
    
    Hide 
    
    
        
        
        
        Только на питоне синтаксис по другому называется функция def итд
    
 
    
    Anton Soldatov 
    
    
 
    
    Anton Soldatov 
    
    
        
        
        
        Если ты умеешь в графы то там решать нечего, а если не умеешь, то адекватно ее и не решишь на ход ноги
    
 
    
    Александр 
    
    
        
        
        
        А так это задачка для джуна)
    
 
    
    Anton Soldatov 
    
    
        
        
        
        /если решит не возьмём/
    
 
    
    Александр 
    
    
        
        
        
        :DDDD
    
 
    
    Edgar 
    
    
 
    
    Edgar 
    
    
 
    
    Hide 
    
    
 
    
    Edgar 
    
    
        
        
        
        Попу как священнослужителю не стоит заниматься такими вещами
    
 
    
    Hide 
    
    
        
                    
                        
                    
                
        
        
        Это не поп а инквизитор! )
    
 
 
    
    🏴☠️ 
    
    
 
    
    🏴☠️ 
    
        
            
        
            
     
    
        
        
        
        const source = [
          [null, 'a'],
          [null, 'b'],
          [null, 'c'],
          ['a', 'a1'],
          ['a', 'a2'],
          ['a2', 'a21'],
          ['a2', 'a22'],
          ['b', 'b1'],
          ['b1', 'b11'],
          ['b11', 'b111'],
          ['b', 'b2'],
          ['c', 'c1'],
        ]
        
        const expected = {
          'a': { 'a1': {}, 'a2': { 'a21': {}, 'a22': {} } },
          'b': { 'b1': { 'b11': { 'b111': {} } }, 'b2': {} },
          'c': { 'c1': {} },
        }
        
        const makeTree = sourceData => {
          const result = {}
        
          for (let i = 0; i < sourceData.length - 1; i += 1) {
            const [key, value] = sourceData[i]
            if (key === null) {
              result[value] = {}
              sourceData.splice(i, 1)
              i -= 1
            }
          }
        
          while (sourceData.length) {
            let [key, value] = sourceData.shift()
            let nestedPath = null
            
            if (result[key]) {
              result[key][value] = {}
              nestedPath = result[key][value]
            }
            
            const nested = sourceData.filter(item => item[0] === value)
            sourceData = sourceData.filter(item => !nested.includes(item))
        
            if (nested) {
              nested.forEach(item => {
                let [key, value] = item
                nestedPath[value] = {}
                nestedPath = nestedPath[value]
              })
            }
          }
        
          return result
        
        }
        
        console.log(
          JSON.stringify(makeTree(source), null, 2)
        )
    
 
    
    Александр 
    
    
 
    
    🏴☠️ 
    
    
        
        
        
        У меня есть книжка Графовые алгоритмы Рафгардена, еще не дошел до нее)
    
 
    
    Anton Soldatov 
    
    
        
        
        
        Я бы сначала прошёлся по левым элементам уточнив структуру, а потом если заглублятся сразу по двум ветвям через туду(не рекурсией) можно в остальные два не ходить
    
 
    
    Anton Soldatov 
    
    
        
        
        
        Вроде бы
    
 
    
    Anton Soldatov 
    
    
        
        
        
        Хз за линейное, но экономия приличная
    
 
    
    honey 
    
    
 
    
    honey 
    
    
        
        
        
        Мяу!
        Я и раньше слышала, что в джс всё является объектами 
        Но эта фраза была пространственной 
        А ты объяснил Почему - про то что изначально все прописывается как классы, которые имеют свойства / методы, а раз так то это уже объекты, и что когда мы создаём через { } и [ ] , то просто даём джс понять объект КАКОГО КЛАССА МЫ ХОТИМ использовать?
        И в этих классах также.прописано что если они созданы через { } - то при typeof отдавать object, а если класс (который объект) создан как [ ], тогда.ролучается при typeof должен отдать array?
        
        И простые типы данных - тоже получается объекты? (ノ゚0゚)ノ~
        Раз у Number есть методы... Значит видимо это тоже класс, которому прописаны методы / свойства 
        И String туда же, тоже есть методы 
        
        А symbol? Тоже объект? Не помню есть ли у него что-то, какие-то методы
    
 
    
    honey 
    
    
        
        
        
        @rulzone тебе говорю !
    
 
    
    honey 
    
    
 
    
    Александр 
    
    
        
                    
                        
                            
                            Мяу!
                    Я и раньше слышала, что в джс всё является объектами 
                    Но эта фраза была пространственной 
                    А ты объяснил Почему - про то что изначально все прописывается как классы, которые имеют свойства / методы, а раз так то это уже объекты, и что когда мы создаём через { } и [ ] , то просто даём джс понять объект КАКОГО КЛАССА МЫ ХОТИМ использовать?
                    И в этих классах также.прописано что если они созданы через { } - то при typeof отдавать object, а если класс (который объект) создан как [ ], тогда.ролучается при typeof должен отдать array?
                    
                    И простые типы данных - тоже получается объекты? (ノ゚0゚)ノ~
                    Раз у Number есть методы... Значит видимо это тоже класс, которому прописаны методы / свойства 
                    И String туда же, тоже есть методы 
                    
                    А symbol? Тоже объект? Не помню есть ли у него что-то, какие-то методы
                        
                    
                
        
        
        ну тип того)
        Можешь в браузере прям проверить)
        let i = 0 ;
        typeof i;
        i.__proto__
        и посмотреть что там есть)
    
 
 
    
    Александр 
    
    
        
        
        
        Единственно есть разница
        let i = new Number(12);
        typeof i будет object
    
 
    
    honey 
    
    
 
    
    honey 
    
    
        
        
        
        Уаа, вообще непонятно что за функциональный фор или почему декларативный 
        Пробел! Надо посмотреть!!!
    
 
    
    honey 
    
    
        
        
        
        forEach - это типа функциональный фор)))
    
 
    
    honey 
    
    
        
        
        
        А так да)
    
 
    
    honey 
    
    
        
        
        
        Декларативный)
    
 
    
    honey 
    
    
        
        
        
        Ну ФП по сути есть декларативное))
    
 
    
    Александр 
    
    
 
    
    Александр 
    
    
 
    
    Александр 
    
    
 
    
    honey