Цитата:
А второй alert что делает? |
DivMan,
user.fullLength считает длину всех строк в ключах "Vasya" + "Pupkin" = 11 добавили ключ test со значением "ok" "Vasya" + "Pupkin" +"ok" = 13 как раз ваше задание Цитата:
|
Я не понимаю, почему первый раз считает, а второй раз не считает
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 |
Ура я додумался
https://jsfiddle.net/8o53ozgu/ |
DivMan,
:) :dance: |
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 |
Почему так не работает?
https://jsfiddle.net/3m0Lvv1o/ Если мы создаём объект при помощи синтаксиса { ... }, то задать свойства-функции можно прямо в его определении. |
Надо перебрать всех пассажиров и вывести их количество.
Вывести имя пассажира и определить, оплатил или нет. Количество оплативших. Количество не оплативших. Это нормальный код? http://plnkr.co/edit/GtdqwD4kv27rcy1pXGEL?p=preview |
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; |
Часовой пояс GMT +3, время: 01:50. |