<commit_before># Предыдущее занятие
* falsy значения
* if () {} else {}
* function
* global scope
* variables, hoisting - http://www.w3schools.com/js/js_hoisting.asp
* array, new Array(), 
* iterations vs filter

# test

https://goo.gl/forms/vOWLKR9lPUPtT3Q53

# Ссылки
## Массивы

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array - методы массива - слева

главные из которых
* push, pop, shift
```javascript
[].push(4) // [4]
[4].pop() // []
```
* slice, splice, unshift,
```javascript
[1,2,3,4].slice() // [1,2,3,4]
[1,2,3,4].slice(1) // [2,3,4]
[1,2,3,4].slice(1,2) // [2,3,4]
[1,2,3,4].slice(1,2) // [2]

[1,2,3,4].splice(2) // [3,4]

[4].pop() // []
```
* reverse, sort
```javascript

// функция которая возвращает результат сравнения 2 строк
// если возвращаемое значение больше нуля (>0) - то el2 будет идти перед el1
// если возвращаемое значение меньше нуля (<0) - то el1 будет идти перед el2
// если равно нулю - то будет стравнивать по встроеному механизму, имеют одинаковый приоритет
var comparator = function(el1, el2) {
    return (el1.length - el2.length)
}
['asd', 'a', 'ab'].sort(comparator) //["a", "ab", "asd"]
````
* concat, join, slice
```javascript
// склеевает элементы массива в строку вставляя строку, готорая задана аргументов join()
[1,2,3].join(' ') // "1 2 3"
[1,2,3].concat([4,5]) // [1,2,3,4,5]

```
* indexOf
* filter, reduce, map, find, includes

* (массивы (итерирование) - важная часть функционального программирования)[https://speakerdeck.com/getify/functional-light-javascript]

## Просто полезные ссылки
https://www.youtube.com/watch?v=xPFRUM_oDKA&feature=youtu.be - видео про технологии и как можно учиться в условиях, когда постоянно чтото меняется

# Практика
## Массивы
* slice
* Для заданного массива скопировать его хвост (все элементы после середины)
* Для заданного массива чисел создать копию, где каждый элемент увеличен на 1. Убедиться, что первоначальный массив остался нетронутым
* join	Преобразовать массив в строку, где каждый элемент стоит в круглых скобках
* indexOf / includes	Отделить из массива ту его часть, которая находится до первого нуля
* map + reduce Подсчитать сумму квадратов элементов массива
```javascript
var ar = ['hello', 'hi', 'yo!']
var VOWELS = [
    'e',
    'a',
    'u',
    'y',
    'i',
    'o'
]
function isVowel(char) {
    return VOWELS.indexOf(char) > -1
}
function getVovelNumber(el) {
    var vowels = el
    .split('')
    .filter(isVowel)
    
    return vowels.length
}

ar.map(getVovelNumber)
```
* [isAnyReservedWord](https://jsfiddle.net/dzianis_sheka/kq5ndhq6/)
* [detectReservedWord](https://jsfiddle.net/n4j95to4/6/)
  * попробывать использовать indexOf


  
# Домашнее задание
## Массивы
### всё что осталось на уроке
* Для заданного массива скопировать его хвост (все элементы после середины)
* Для заданного массива чисел создать копию, где каждый элемент увеличен на 1. Убедиться, что первоначальный массив остался нетронутым
* join	Преобразовать массив в строку, где каждый элемент стоит в круглых скобках
* indexOf / includes	Отделить из массива ту его часть, которая находится до первого нуля
* map + reduce Подсчитать сумму квадратов элементов массива<commit_msg>more code to correct place<commit_after># Предыдущее занятие
* falsy значения
* if () {} else {}
* function
* global scope
* variables, hoisting - http://www.w3schools.com/js/js_hoisting.asp
* array, new Array(), 
* iterations vs filter

# test

https://goo.gl/forms/vOWLKR9lPUPtT3Q53

# Ссылки
## Массивы

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array - методы массива - слева

главные из которых
* push, pop, shift
```javascript
[].push(4) // [4]
[4].pop() // []
```
* slice, splice, unshift,
```javascript
[1,2,3,4].slice() // [1,2,3,4]
[1,2,3,4].slice(1) // [2,3,4]
[1,2,3,4].slice(1,2) // [2,3,4]
[1,2,3,4].slice(1,2) // [2]

[1,2,3,4].splice(2) // [3,4]

[4].pop() // []
```
* reverse, sort
```javascript

// функция которая возвращает результат сравнения 2 строк
// если возвращаемое значение больше нуля (>0) - то el2 будет идти перед el1
// если возвращаемое значение меньше нуля (<0) - то el1 будет идти перед el2
// если равно нулю - то будет стравнивать по встроеному механизму, имеют одинаковый приоритет
var comparator = function(el1, el2) {
    return (el1.length - el2.length)
}
['asd', 'a', 'ab'].sort(comparator) //["a", "ab", "asd"]
````
* concat, join, slice
```javascript
// склеевает элементы массива в строку вставляя строку, готорая задана аргументов join()
[1,2,3].join(' ') // "1 2 3"
[1,2,3].concat([4,5]) // [1,2,3,4,5]

```
* indexOf
* filter, reduce, map, find, includes
```javascript
var ar = ['hello', 'hi', 'yo!']
var VOWELS = [
    'e',
    'a',
    'u',
    'y',
    'i',
    'o'
]
function isVowel(char) {
    return VOWELS.indexOf(char) > -1
}
function getVovelNumber(el) {
    var vowels = el
    .split('')
    .filter(isVowel)
    
    return vowels.length
}

ar.map(getVovelNumber)
```

* (массивы (итерирование) - важная часть функционального программирования)[https://speakerdeck.com/getify/functional-light-javascript]

## Просто полезные ссылки
https://www.youtube.com/watch?v=xPFRUM_oDKA&feature=youtu.be - видео про технологии и как можно учиться в условиях, когда постоянно чтото меняется

# Практика
## Массивы
* slice
* Для заданного массива скопировать его хвост (все элементы после середины)
* Для заданного массива чисел создать копию, где каждый элемент увеличен на 1. Убедиться, что первоначальный массив остался нетронутым
* join	Преобразовать массив в строку, где каждый элемент стоит в круглых скобках
* indexOf / includes	Отделить из массива ту его часть, которая находится до первого нуля
* map + reduce Подсчитать сумму квадратов элементов массива
* [isAnyReservedWord](https://jsfiddle.net/dzianis_sheka/kq5ndhq6/)
* [detectReservedWord](https://jsfiddle.net/n4j95to4/6/)
  * попробывать использовать indexOf


  
# Домашнее задание
## Массивы
### всё что осталось на уроке
* Для заданного массива скопировать его хвост (все элементы после середины)
* Для заданного массива чисел создать копию, где каждый элемент увеличен на 1. Убедиться, что первоначальный массив остался нетронутым
* join	Преобразовать массив в строку, где каждый элемент стоит в круглых скобках
* indexOf / includes	Отделить из массива ту его часть, которая находится до первого нуля
* map + reduce Подсчитать сумму квадратов элементов массива
{'fraction_non_alphanumeric': 0.13811379579111457, 'fraction_numerical': 0.026500389711613406, 'mean_word_length': 4.32448132780083, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 12, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '768670', 'n_tokens_mistral': 2765, 'n_tokens_neox': 2984, 'n_words': 655}