Прошу помощи с кодом
Всем привет. Прошу помощи с кодом. Не могу решить задание. Что я делаю не так, что мне нужно изменить?? Добра вам)
class popeluchka {
constructor(name, age , sizeFoot) {
this,name = name;
this.age = age;
this.sizeFoot = sizeFoot;
}}
class princ extends popeluchka {
constructor(name,age ,sizeFoot ,shoesSize) {
super(name, age);
this.shoesSize = shoesSize;
}indPopeluchka(array){
let find = null;
for (let item of array){
if (item.sizeFoot === this.shoesSize){
find = item;
}
} if (find){
console.log('My Popeluchka name is' + this.name);
}else {
console.log('i didint find my popeluchka');
}
}
}
let popelushka1 = new popeluchka('Julia' ,18,31);
let popelushka2 = new popeluchka('Lesia' , 19, 29);
let popelushka3 = new popeluchka('Diana', 21,30);
let popelushka4 = new popeluchka('Olexandra', 17, 28);
let popelushka5 = new popeluchka('Viktoria' , 19,33);
let popelushka6 = new popeluchka( 'Maria,',21, 34);
let popelushka7 = new popeluchka('Nadia',23,35);
let popelushka8 = new popeluchka('Khrystina' , 17, 36);
let popelushka9 = new popeluchka('Liza', 19,39);
let popelushka10 = new popeluchka('Marta', 21,41);
let allPopeluchka = [popelushka1,popelushka2,popelushka3,popelushka4,,popelushka5,popelushka6,popelushka7,popelushka8,popelushka9,popelushka10];
let prince = new princ('Vasya' , 32, 31);
prince.findPopeluchka(allPopeluchka)
Ответы (2 шт):
- Была запятая вместо точки.
- Не правильное название функции в классе (вы скорее всего стерли первый символ случайно).
class popeluchka {
constructor(name, age , sizeFoot) {
this.name = name;
this.age = age;
this.sizeFoot = sizeFoot;
}}
class princ extends popeluchka {
constructor(name,age ,sizeFoot ,shoesSize) {
super(name, age);
this.shoesSize = shoesSize;
}
findPopeluchka(array){
let find = array.find(item => item.sizeFoot === this.shoesSize);
if (find){
console.log('My Popeluchka name is' + this.name);
}else {
console.log('i didint find my popeluchka');
}
}
}
let popelushka1 = new popeluchka('Julia' ,18,31);
let popelushka2 = new popeluchka('Lesia' , 19, 29);
let popelushka3 = new popeluchka('Diana', 21,30);
let popelushka4 = new popeluchka('Olexandra', 17, 28);
let popelushka5 = new popeluchka('Viktoria' , 19,33);
let popelushka6 = new popeluchka( 'Maria,',21, 34);
let popelushka7 = new popeluchka('Nadia',23,35);
let popelushka8 = new popeluchka('Khrystina' , 17, 36);
let popelushka9 = new popeluchka('Liza', 19,39);
let popelushka10 = new popeluchka('Marta', 21,41);
let allPopeluchka = [popelushka1,popelushka2,popelushka3,popelushka4,popelushka5,popelushka6,popelushka7,popelushka8,popelushka9,popelushka10];
let prince = new princ('Vasya' , 32, 31);
prince.findPopeluchka(allPopeluchka)
Что я делаю не так, что мне нужно изменить?
Помимо опечатки this,name = name; → this.name = name; (+ если придираться), ...
Пробелы, отступы - всё съехало, >> Советы по стилю кода
Каким образом класс «Принц» расширяет класс «Золушка», какие характеристики получает от Золушки? Если необходимо использовать классы, было бы логичнее сделать один общий класс «Человек» или «Персонаж», и чтобы они оба наследовали от него.
let find = null;...if (find)— вместо этого, из функции, прямо посреди цикла можно сразу вернуть найденный результат, без использования флагов.let popelushka1 = new popeluchka('Julia' ,18,31);и последующие нумерованные переменные, можно убрать и изначально создавать все экземпляры в массиве.Есть широко распространенное соглашение называть конструкторы объектов с большой буквы.
Названия свойств
sizeFoot/footSize/shoeSize/sizeShoe... Будет немного легче жить, если записывать их по одному принципу, а не вперемешку.
class Char {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
class Cinderella extends Char {
constructor(name, age, footSize) {
super(name, age);
this.footSize = footSize;
}
}
class Prince extends Char {
constructor(name, age, shoeSize) {
super(name, age);
this.shoeSize = shoeSize;
}
findCinderella(arr) {
for (let girl of arr) {
if (girl.footSize === this.shoeSize) {
return "My Popelushka name is " + girl.name;
}
}
return "I didin't found my Popelushka";
}
}
/***/
let data = [
/* [name, age, footSize] */
// Чтобы точно не перепутать и не указать размер, потом возраст
["Julia", 18, 31],
["Lesia", 19, 29],
["Diana", 21, 30],
["Olexandra", 17, 28],
["Viktoria", 19, 33],
["Maria,", 21, 34],
["Nadia", 23, 35],
["Khrystina", 17, 36],
["Liza", 19, 39],
["Marta", 21, 41],
];
/***/
let list = data.map(arr => new Cinderella(...arr));
let prince = new Prince("Vasya", 32, 31);
console.log( prince.findCinderella(list) );