# Type Stats (1) Написать функцию typeStats, которая возвращает объект с ключами - типами, а значениями - количеством элементов этого типа в массиве: ```javascript var arr = ['1', 0, Math.random, alert, prompt, prompt(), null, undefined, "name", {}] typeStats(arr); //вернет { string: 3 /* или два */, number: 1, function: 3, object: 2 /* или три */, undefined: 1} ``` # Intersect (2) Написать функцию, которая будет возвращать новый массив с пересечением значений в двух массивах-параметров: ```javascript var a = [1,2,3,4] var b = [3,4,5,6] intersect(a,b); //[3,4] ``` # oddEvenClass (3) Написать функцию, которая будет устанавливать два класса детям элемента через один: ```javascript oddEvenClass(tbody, 'light', 'dark') //установит всем детям tbody, т. е. tr, классы light и dark через один, сделав подсветку зеброй oddEvenClass(ul, 'light', 'dark') // аналогично для всех li ``` # UpScroll (4) Написать функцию, которая перематывает страницу вверх по нажатию на блок, запоминает позицию на странице и возвращается по нажатию вниз при повторном клике. ```javascript upScroll(buttonUp) ``` # Tabs (5) Написать функцию, которая из массива пар элементов-кнопок и элементов-блоков обеспечивает переключения видимого блока по нажатию на элементе-кнопке. По старту блоки прячуться кроме первого. ```javascript tabs([{button: tab1, block: div1},{button: tab2, block: div2},{button: tab3, block: div3}]) //при запуске всё прячется кроме div1, потом по клику на tabN включается divN ```