Вывести в консоль строку со всеми свойствами и их значениями (без методов)
В программе объявлен объект props, у которого задан набор свойств. Объявите функцию getValue(), которая выводит в консоль строку со всеми свойствами и их значениями (без методов). Привяжите объект props в качестве контекста функции getValue() и присвойте получившуюся функцию переменной getValue.
Пример значений переменных:
props= {
name: "Анатолий",
age: 29,
sayHi: ()=>"привет"
}
Пример результата: Значения свойств объекта props (name: Анатолий, age: 29)
Ход моих мыслей, но не могу понять каким образом теперь вывести получившийся объект в строку
function getValue() {
for (key in this) {
if (typeof this[key] == 'function') {
delete this[key];
}
}
console.log(String(Object.entries(this)));
}
props.getValue = getValue.bind(props);
props.getValue();
Ответы (3 шт):
ЭЛЕКТРОННЫЙ КУРС Основы программирования на JavaScript II.
let s = 'Значения свойств объекта props ';
function getValue(){
if (Object.keys(props).length === 0) {
s = s + '()';}
for (let key in props) {
if ((typeof props[key]) != "function") {
if (s == 'Значения свойств объекта props '){
s = s + `(${key}:`;
s = s + ' ' + `${props[key]},`+ ' ';
}
else {
s = s + `${key}:`;
s = s + ' ' + `${props[key]}`+ ')';
}
}
else if (s == 'Значения свойств объекта props ()') {
s = s;
}
else if (s == 'Значения свойств объекта props '){s = s + '()';}
}
console.log(s);
}
getValue = getValue.call(props);
Решение рабочее, но проверки у них храмают. А так выводит что нужно. Первый if лютый костыль, чтобы обойти проверку пустым объектом. Если есть адекватное решение, готов выслушать.
function getValue() {
let newProps = {}
for (let key in props) {
if ((typeof props[key]) != 'function')
newProps[key] = props[key];
}
let string = ''
for (let key in newProps) {
string += `${key}` + ': ' + `${newProps[key]}` + ', '
}
string = string.slice(0, -2);
let result = 'Значения свойств объекта props ' + `(${string})`;
console.log(result)
}
getValue = getValue.call(props);
Советую использовать для вывода объекта без функций JSON.stringify
const props = {
name: "Анатолий",
age: 29,
sayHi: () => "привет"
};
function getValue(obj) {
return JSON.stringify(obj);
}
console.log(getValue(props));