Для вывода всех элементов массива через запятую можно воспользоваться встроенным методом join
const schools = [
"BSUIR", "BNTU", "MGCP", "BSU" ];
join()
schools.join(', ');
Для обсуждения возможностей reduce(), создадим массив ages
.
const ages = [21,24,39,50,41,64,39,21];
reduce()
const maxAge = ages.reduce((max, age) => { if(age > max){ return age; }else{ return max; } }, 0)
То же, но с помощью тернарного оператора
const max = ages.reduce( (max, value) => (value > max) ? value : max, 0 )
reduceRight()
array.reduceRight() const newarr = ages.reduceRight( (dist, value) => (dist.indexOf(value) !== -1) ? dist : [...dist, value], [] )
new Set
Убрать повторяющиеся элементы массива можно с помощью класса Set
.
console.log([...new Set(ages)]);
new Map
Объект Map содержит пары ключ-значение и сохраняет порядок вставки. Любое значение (как объекты, так и примитивы) могут быть использованы в качестве ключей.
let map = new Map(); map.set("1", "str1"); // строка в качестве ключа map.set(1, "num1"); // цифра как ключ map.set(true, "bool1"); // булево значение как ключ // помните, обычный объект Object приводит ключи к строкам? // Map сохраняет тип ключей, так что в этом случае сохранится 2 разных значения: alert(map.get(1)); // "num1" alert(map.get("1")); // "str1" alert(map.size); // 3
Map может быть итерирован с помощью метода forEach():
myMap.forEach(function(value, key) { console.log(`${key} => ${value}`); });
Взаимоотношения с объектом Array
const kvArray = [['key1', 'value1'], ['key2', 'value2']]; // Используйте конструктор Map для преобразования двумерных массивов в Map const myMap = new Map(kvArray);
Использование объекта в качестве ключа
let john = { name: "John" }; // давайте сохраним количество посещений для каждого пользователя let visitsCountMap = new Map(); // объект john - это ключ для значения в объекте Map visitsCountMap.set(john, 123); alert(visitsCountMap.get(john)); // 123
Методы и свойства Map:
new Map()
– создаёт коллекцию.map.set(key, value)
– записывает по ключу key
значение value
.map.get(key)
– возвращает значение по ключу или undefined
, если ключ key
отсутствует.map.has(key)
– возвращает true
, если ключ key
присутствует в коллекции, иначе false
.map.delete(key)
– удаляет элемент по ключу key
.map.clear()
– очищает коллекцию от всех элементов.map.size
– возвращает текущее количество элементов.Практика