Полезные функции js

forEach - перебор массива, можно параметром передать коллбек

  
let array = [1, 2, 3, 4];
let sum = 0;
array.forEach(val => sum += val);
console.log("sum:" + sum);

map - обход всего массива и возврат данных с функции

  
let array = [1, 2, 3, 4];
let array2 = array.map(function(val){
return val+val;
});
console.log("array2:" + array2);

filter - возвращает новый массив состоящий из элементов которые отобраны в функции

  
let array = [1, 2, 3, 4];
let array2 = array.filter(val => val % 2 ==0); //вернем все четные значения массива
console.log("array2:" + array2);

every - true если все значения массива соответствуют условию

  
let array = [1, 2, 3, 4];
let bool = array.every(val => val > 7); //в нашем случае вернет false
console.log("bool:" + bool);

some - true если хотя бы одно значения соответствуют условию

  
let array = [1, 2, 3, 4];
let bool = array.some(val => val % 2 == 0); //в нашем случае вернет true
console.log("bool:" + bool);

reduce - применяет функцию к аккамулятору и каждому значению массива, слева направо. Вторым параметром передается стартовое значение массива. Коллбек принимает 4 параметра(1 - предыдущее значение, либо стартовое значение, 2 - текущее значение, 3 - индекс текущего значения, 4 - массив для которого была вызвана функция reduce)

  
let array = [1, 2, 3, 4];
let sum = array.reduce((prev, current)=>{
console.log("prev " + prev + "cur" +current);
}, 0);
console.log("result:" + sum);
return prev + current;

spread operator - вливаем элементы одного массива в другой, либо свойства одного объекта добавляем к свойствам другого

  
let arrayFirst = [1, 2, 3, 4];
let arraySecond = [...arrayFirst, 5, 6, 7];
console.log(arraySecond);
let objectFirst = { first: 1, second: 2};
let objectSecond = { ...objectFirst, third: 3};
console.log(objectSecond);

for ... in, for ... of - первое это обход по свойствам объекта, либо индексам массива, второе обход по значениям массива либо объекта

  
class Car{
constructor(model,brand){}
}

let cars = [];
cars[0] = new Cars('lancer x', 'mitsubishi');
cars[1] = new Cars('rav4', 'toyota');

for(let index in cars){
console.log(index);
}

for(let value of cars){
console.log(value);
}

Деструктуризация, имена переменных должны совпадать с ключами в объекте

  
const {name} = value; // value = {name: ''}
name; // ''
// то же самое что и
const name = value.name;

Можно использовать в параметрах функции
const foo = ({prop}) => {}
foo({prop: 'prop'});

Возвращение нескольких параметров из функции
const foo = () => ({var1: 1, var2: 2})
const {var1, var2} = foo();