//Literals
//Найдите несколько окружающих объектов реального мира и создайте соответственные объекты Javascript. Например:
{
const phone = {
brand: 'Xiaomi',
model: 'mi11',
year: '2021',
memory: '256'
}
}
//Literals expand
//Дайте возможность пользователю добавить любые два свойства в эти объекты с любыми значениями. Обеспечьте ввод названия ключа и значения через prompt прямо в литерале объекта {}
{
const yourPhone = {
[prompt('свойство 1')]: prompt('значение свойства 1'),
[prompt('свойство 2')]: prompt('значение свойства 2'),
[prompt('свойство 3')]: prompt('значение свойства 3'),
}
}
//Literals copy
//Пусть пользователь введет еще одно свойство в переменную. Вставьте в новый объект эту переменную. Скопируйте объект из предыдущего задания в новый объект.
{
const yourPhone = {
[prompt('свойство 1')]: prompt('значение свойства 1'),
[prompt('свойство 2')]: prompt('значение свойства 2'),
}
const property = prompt()
const objNew = {
[property] : 25,
...yourPhone
}
}
//Html tree
/*
Enter a data please:
*/
/*Сделайте декларативную JSON-структуру для тэгов выше, в которой:
каждый тэг будет объектом
имя тэга будет полем tagName
вложенные тэги будут в поле children
набор аттрибутов тэга будет в поле attrs.*/
{
const body = {
tagName : 'body',
children : [
{
tagName : 'div',
children : [
{
tagName : 'span',
children : ['Enter a data please:']
},
{
tagName : 'br'
},
{
tagName : 'input',
attrs : {
type : 'text',
id : 'name'
}
},
{
tagName : 'input',
attrs : {
type : 'text',
id : 'surname',
}
}
]
},
{
tagName : 'div',
children : [
{
tagName : 'button',
attrs : {
id : 'ok'
},
children : ['OK']
},
{
tagName : 'button',
attrs : {
id : 'cancel'
},
children : 'Cancel'
},
]
}
]
}
// Выведите значения текста во второй кнопке, используя . и [].
console.log( body.children[1].children[1].children ) ;
//Выведите значение атрибута id во втором input, используя . и [].
console.log( body.children[0].children[3].attrs.id ) ;
}
// Parent
// Добавьте каждому объекту тэга из предыдущего задания связь с родителем, используя свойство parent и присвоение
{
const body = {
tagName : 'body',
children : [
{
tagName : 'div',
children : [
{
tagName : 'span',
children : ['Enter a data please:']
},
{
tagName : 'br'
},
{
tagName : 'input',
attrs : {
type : 'text',
id : 'name'
}
},
{
tagName : 'input',
attrs : {
type : 'text',
id : 'surname',
}
}
]
},
{
tagName : 'div',
children : [
{
tagName : 'button',
attrs : {
id : 'ok'
},
children : ['OK']
},
{
tagName : 'button',
attrs : {
id : 'cancel'
},
children : 'Cancel'
},
]
}
]
}
body.children[0].parent = body;
body.children[0].children[0].parent = body.children[0];
body.children[0].children[1].parent = body.children[0];
body.children[0].children[2].parent = body.children[0];
body.children[0].children[3].parent = body.children[0];
body.children[1].parent = body;
body.children[1].children[0].parent = body.children[1];
body.children[1].children[1].parent = body.children[1];
}
//Change OK
//Добавьте(или измените) любой введенный пользователем атрибут тэга