Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка домашнего задания (https://javascript.ru/forum/misc/61992-proverka-domashnego-zadaniya.html)

DivMan 19.03.2016 17:30

Проверка домашнего задания
 
Задание: Создать объект, дать несколько свойств, записать значения для этих свойств и подсчитать количество символов у значений.

https://jsfiddle.net/t5mwx684/

DivMan 19.03.2016 17:30

Это нормальное решение?

рони 19.03.2016 17:40

DivMan,
это зачем? count++ если у вас уже есть arr.length

DivMan 19.03.2016 17:53

Цитата:

Сообщение от рони (Сообщение 411447)
DivMan,
это зачем? count++ если у вас уже есть arr.length

Привык результат записывать в отдельную переменную

рони 19.03.2016 18:14

Цитата:

Сообщение от DivMan
Привык результат записывать в отдельную переменную

это не ответ на вопрос о ++

DivMan 19.03.2016 18:31

В смысле? Зачем я написал постфиксная форму, а не префиксную?

рони 19.03.2016 18:50

DivMan,
сформулирую вопрос иначе :) зачем цикл нужен в вашем коде?

DivMan 19.03.2016 19:55

Вот так?
https://jsfiddle.net/t5mwx684/1/

рони 19.03.2016 20:04

Цитата:

Сообщение от DivMan
Вот так?

да, достаточно var count = arr.length;
а попробуйте переделать fullName в fullLength

чтобы было так
var user = {
	name: "Vasya",
  family: "Pupkin"
}

Object.defineProperty(user, "fullLength", {
	get: function(){
    //....

  }
})



alert("в объекте user " + user.fullLength + " символов");//11
user.test = "ok"
alert("в объекте user " + user.fullLength + " символов"); //13

DivMan 19.03.2016 20:08

С помощью цикла, можно добавить функциональности

https://jsfiddle.net/t5mwx684/2/

DivMan 19.03.2016 20:12

Цитата:

Сообщение от рони (Сообщение 411464)
да, достаточно var count = arr.length;
а попробуйте переделать fullName в fullLength

чтобы было так
var user = {
	name: "Vasya",
  family: "Pupkin"
}

Object.defineProperty(user, "fullLength", {
	get: function(){
    //....

  }
})



alert("в объекте user " + user.fullLength + " символов");//11
user.test = "ok"
alert("в объекте user " + user.fullLength + " символов"); //13

Я не понимаю, первая функция user.fullLength должна посчитать символы без пробела?

А второй alert что делает?

рони 19.03.2016 20:17

DivMan,
user.fullLength считает длину всех строк в ключах "Vasya" + "Pupkin" = 11
добавили ключ test со значением "ok"
"Vasya" + "Pupkin" +"ok" = 13
как раз ваше задание
Цитата:

Сообщение от DivMan
подсчитать количество символов у значений.


DivMan 19.03.2016 21:07

Я не понимаю, почему первый раз считает, а второй раз не считает

var user = {
    name: "Vasya",
	family: "Pupkin"
}

Object.defineProperty(user, "fullLength", {
    get: function(){
		var result = "";
		for(var key in user){
			result = result + user[key]
		}
		return result
	}

})

var arr = user.fullLength.split('').length;


alert("в объекте user " + arr + " символов");//11
user.test = "ok"
alert("в объекте user " + arr + " символов"); //13

DivMan 19.03.2016 21:09

Ура я додумался
https://jsfiddle.net/8o53ozgu/

рони 19.03.2016 21:23

DivMan,
:) :dance:

рони 19.03.2016 21:24

DivMan, ещё для разнообразия вариант решения
var user = {
	name: "Vasya",
  family: "Pupkin"
}

Object.defineProperty(user, "fullLength", {
	get: function(){
    return Object.keys(user).reduce(function(length, key) {
      return length += user[key].length;
    }, 0);

  }
})



alert("в объекте user " + user.fullLength + " символов");//11
user.test = "ok"
alert("в объекте user " + user.fullLength + " символов"); //13

DivMan 20.03.2016 05:43

Почему так не работает?

https://jsfiddle.net/3m0Lvv1o/

Если мы создаём объект при помощи синтаксиса { ... }, то задать свойства-функции можно прямо в его определении.

DivMan 05.09.2016 11:30

Надо перебрать всех пассажиров и вывести их количество.

Вывести имя пассажира и определить, оплатил или нет.

Количество оплативших.

Количество не оплативших.

Это нормальный код? http://plnkr.co/edit/GtdqwD4kv27rcy1pXGEL?p=preview

Царь Леонид 05.09.2016 12:09

var passengers = [
	{name: 'Jane Doloop', paid: true},
	{name: 'Dr. Evel', paid: true},
	{name: 'Sue Property', paid: false},
	{name: 'John Funcall', paid: true}
]
var paidPassengers = passengers.filter(item=> item.paid).length
var notPaidPassengers = passengers.filter(item=> !item.paid).length
console.log(`оплатили: ${paidPassengers}`)
console.log(`не оплатили: ${notPaidPassengers}`)

nerv_ 05.09.2016 12:29

Цитата:

Сообщение от Царь Леонид (Сообщение 427709)
var passengers = [
	{name: 'Jane Doloop', paid: true},
	{name: 'Dr. Evel', paid: true},
	{name: 'Sue Property', paid: false},
	{name: 'John Funcall', paid: true}
]
var paidPassengers = passengers.filter(item=> item.paid).length
var notPaidPassengers = passengers.filter(item=> !item.paid).length
console.log(`оплатили: ${paidPassengers}`)
console.log(`не оплатили: ${notPaidPassengers}`)

var notPaidPassengers = passengers.length - paidPassengers;

DivMan 06.09.2016 12:16

Проверьте ещё одно.

Создать объект с напитками с помощью конструктора.
В этот объект добавить метод, который будет определять объём напитка

http://plnkr.co/edit/6OF1VOpuWkzKv4TIl0UR?p=preview

DivMan 12.09.2016 10:41

Проверьте ещё одно.

Напишите функцию, которая принимает в качестве аргументов
три числа и возвращает сумму квадратов двух больших из них.

Например

foo(2,1,3)

//13 == 2*2 + 3*3 == 4+9

foo(2,4,3)

//25 == 4*4 + 3*3 == 16+9

Обратите внимание, вся задача состоит из трёх подзадач:

1) Найти два больших числа
2) Вычислить квадрат двух чисел
3) Вычислить сумму квадратов двух чисел

http://plnkr.co/edit/01AzIiYAGeDpnbMQEidb?p=preview

DivMan 12.09.2016 19:50

Я запутался с классами es6

http://i84.fastpic.ru/big/2016/0912/...bb9cce529d.jpg

class User{
	constructor(name, age){
		this.name = name;
		this.age = age;
	}
	say(word){
		return this.name + ' ' + word
	}
}

class SuperUser extends User{
	constructor(role){
		super(role)
	}
}

class superUser extends SuperUser{

}

var g = new superUser('Vasya')

console.log(g.say('Hello'))


А зачем создавать role?

Всё ли правильно я сделал?


Часовой пояс GMT +3, время: 09:57.