diff --git a/task6/index.html b/task6/index.html
new file mode 100644
index 0000000..08c012b
--- /dev/null
+++ b/task6/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ task7
+
+
+
+
+
+
+
diff --git a/task6/js/main.js b/task6/js/main.js
new file mode 100644
index 0000000..77f309e
--- /dev/null
+++ b/task6/js/main.js
@@ -0,0 +1,184 @@
+"use strict"
+// Создать функцию конструктор Animal c аргументами name, age, color. Написать логику для того, чтобы функцию можно было вызывать как с, так и без new:
+// При вызове без new новый обьект все равно должен создаться
+
+function Animal(name, age, colour) {
+
+ if(!new.target){
+ return new Animal(name, age, colour);
+ }
+
+ this.name = name;
+ this.age = age;
+ this.colour = colour;
+}
+
+const animal = Animal('Name', 'Age', 'Colour');
+console.log(animal);
+
+// Создайте функцию-конструктор Calculator, который создаёт объекты с такими методами:
+// read() запрашивает два значения при помощи prompt и сохраняет их значение в свойствах объекта.
+// setAction() запрашивает действие при помощи prompt, которые мы хотим сделать (+, -, / и т.д)
+// doAction() выполняет действие, которое юзер ввел (будет вызывать в себя методы sum, mul, min и т.д)
+// sum() возвращает сумму введённых свойств.
+// mul() возвращает произведение введённых свойств.
+// min() возвращает разницу введённых свойств.
+// другие методы можете добавит если хотите (метод для квадратного корня и т.д.)
+
+function Calculator() {
+
+}
+
+Calculator.prototype.read = function() {
+ const val1 = +(prompt('Enter your 1 number'));
+ const val2 = +(prompt('Enter your 2 number'));
+ this.first = val1;
+ this.second = val2;
+}
+
+Calculator.prototype.setAction = function() {
+ const action = prompt('Enter a math operation');
+ this.action = action;
+}
+
+Calculator.prototype.doAction = function() {
+ switch(this.action){
+ case '+':
+ this.sum();
+ break;
+
+ case '-':
+ this.min();
+ break;
+
+ case '/':
+ this.divide();
+ break;
+
+ case '*':
+ this.mul();
+ break;
+
+ case '**':
+ this.pow();
+ break;
+ }
+}
+
+Calculator.prototype.sum = function() {
+ this.sum = this.first + this.second;
+}
+
+Calculator.prototype.min = function() {
+ this.min = this.first - this.second;
+}
+
+Calculator.prototype.mul = function() {
+ this.mul = this.first * this.second;
+}
+
+Calculator.prototype.divide = function() {
+ this.divide = this.first / this.second;
+}
+
+Calculator.prototype.pow = function() {
+ this.pow = this.first ** this.second;
+}
+
+const calculator = new Calculator();
+calculator.read();
+console.log(calculator);
+calculator.setAction();
+calculator.doAction();
+console.log(calculator);
+
+// Создать функцию конструктор Nums, которая принимает бесконечное множество аргументов, и они записываются в свойство args в виде массива
+// Добавить в прототип для всех объектов, которые создадим от конструктора Nums, 2 метода:
+
+// метод getSum должен вернуть сумму всех элементов (которые только целые числа) массива args
+// метод myFilterReverse должен отфильтровать массив и оставить только целые числа и развернуть массив (было [1, 2, 3] -> стало [3, 2, 1])
+// Метод .reverse использовать нельзя :)
+
+// только целые числа -> Number.isInteger(1); // true Number.IsInteger(1.2); // false
+
+function Nums(...args){
+ this.args = [...args];
+}
+
+Nums.prototype.getSum = function() {
+ const arr = this.filter();
+ const result = arr.reduce((acc, item) => acc + item);
+ return result;
+}
+
+Nums.prototype.filterReverse = function() {
+ const arr = this.filter();
+ const reverseArr = arr.map((item, i) => {
+ return arr[arr.length - i - 1];
+ });
+ return reverseArr;
+}
+
+Nums.prototype.filter = function() {
+ const filterArr = this.args.filter(el => {
+ return Number.isInteger(el);
+ });
+
+ return filterArr;
+}
+
+const nums = new Nums(2.6, 1, 2, 3, null, [], {});
+console.log(nums.getSum());
+console.log(nums.filterReverse());
+
+// Есть массив [1, 1, 2, 2, 3]
+// Создать свой метод getUnique для любых массивов, который отфильтрует массив и оставит в нем только уникальные значения
+// Подсказка: чтобы было легче почитайте про метод .includes()
+
+const arr = [1, 1, 2, 2, 3];
+function getUnique(arr){
+ return Array.isArray(arr) ?
+ [...new Set(arr)] : `Error ${arr} is not correct!`;
+}
+
+console.log(getUnique(arr));
+
+// 5* Есть объект {a: 1, b: 2, c: 3, d: false, e: 0}; Нужно создать 2 метода для любых объектов:
+// метод getKeySum, который найдет сумму значений всех ключей, которые true.
+// метод reversKey который поменяет местави key и value (ключ и значение)
+// Пример Был объект {a: 1, b: 2}.reversKey() -> стало {1: 'b', 2: 'a'}
+
+const obj = {
+ a: 1,
+ b: 2,
+ c: 3,
+ d: false,
+ e: 0,
+
+ getKeySum(){
+ const filter = Object.values(this).filter(el => el && typeof el !== 'function');
+ const totalsum = filter.reduce((acc, item) => acc + item);
+ return totalsum;
+ },
+
+ reverseKey(){
+
+ const newObj = Object.keys(this)
+ .filter(el => typeof this[el] !== 'function')
+
+ .map(el => {
+ return {[this[el]]: el};
+ });
+
+ return newObj.reduce((acc, el) => {
+ return {...acc , ...el};
+ });
+
+ }
+}
+
+console.log(obj.getKeySum());
+console.log(obj.reverseKey());
+
+
+