/
rocetDim
/
TASK
Обзор
Документация
Войти
/
rocetDim
/
TASK
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
59-extend-array/solution.js
39 строк
1 KB
rocketDim
first commit
16 окт 2023, 21:30
16 окт 2023, 21:30
f218c36
Код
Авторство
О чём код?
/** ЗАДАЧА 59 - Расширение массивов * * 1. Создайте новый класс "ExtendedArray", который должен расширять встроенный "Array" * * 2. Добавьте в новый класс два пользовательских метода: * - "sum" - он должен возвращать сумму всех элементов массива * - "onlyNumbers" - должен возвращать новый массив, * который будет содержать только числа из исходного массива * * 3. Создайте несколько экземпляров нового класса "ExtendedArray" * и протестируйте оба метода "sum" и "onlyNumbers". * * 4. Убедитесь, что остальные методы массивов такие, * как "forEach", "map" также доступны */ class ExtendedArray extends Array { sum() { return this.reduce((sum, num) => sum + num, 0) } onlyNumbers() { return this.filter((el) => typeof el === 'number') } } const myExtendedArray = new ExtendedArray(10, 4, 5) console.log(myExtendedArray) console.log(myExtendedArray.sum()) const myExtendedArray2 = new ExtendedArray('abc', 5, true, 25) console.log(myExtendedArray2.onlyNumbers()) myExtendedArray2.forEach((el) => console.log(el)) // // Array instances don't have access to methods sum and onlyNumbers // const myArray = [1, 2, 3] // myArray.sum()