Www.guvi.io/zen

GUVI: Zen Code-Sprint: Практические проблемы JavaScript в JSON (объекты) и список

Если вы будете практиковать все эти проблемы, вы будете сильны в манипуляциях с JS-объектами. Перед тем, как начать, ознакомьтесь с основами тренировок в JS.

Задача 0: Часть A (15 минут):

Игра со значениями объекта JSON:

Пушистик, извините, Пушистый - мой любимый кот, и у него есть 2 друга-кота.
Напишите код, чтобы получить приведенную ниже информацию о Пушике, чтобы
я мог отвезти его на ветеринарную проверку.

var cat = {
 name: ‘Fluffy’,
 activities: [‘play’, ‘eat cat food’],
 catFriends: [
 {
 name: ‘bar’,
 activities: [‘be grumpy’, ‘eat bread omblet’],
 weight: 8,
 furcolor: ‘white’
 }, 
 {
 name: ‘foo’,
 activities: [‘sleep’, ‘pre-sleep naps’],
 weight: 3
 }
 ]
}
console.log(cat);

Основные задачи для работы с JSON

  1. Добавьте рост и вес пушистому
  2. Имя Fluffy написано неправильно. Обновите его до Fluffyy
  3. Составьте список всех занятий друзей-кошек Fluffyy.
  4. Выведите имена друзей-кошек.
  5. Выведите общий вес кошек.
  6. Выведите общую активность всех кошек (op: 6)
  7. Добавьте еще 2 занятия в bar & foo cats
  8. Обновите цвет меха планки

Задача 0: Часть B (15 минут):

Итерация со значениями объекта JSON

Выше немного информации о моей машине. Как видите, я не лучший водитель.
Я стал причиной нескольких аварий.
Пожалуйста, обновите этот отчет о вождении, чтобы я мог лучше оценить свои навыки вождения.

var myCar = {
 make: ‘Bugatti’,
 model: ‘Bugatti La Voiture Noire’,
 year: 2019,
 accidents: [
 {
 date: ‘3/15/2019’,
 damage_points: ‘5000’,
 atFaultForAccident: true
 },
 {
 date: ‘7/4/2022’,
 damage_points: ‘2200’,
 atFaultForAccident: true
 },
 {
 date: ‘6/22/2021’,
 damage_points: ‘7900’,
 atFaultForAccident: true
 }
 ]
}

1. Прокрутите список происшествий. Измените atFaultForAccident с true на false.

2. Распечатайте дату моих несчастных случаев.

Настоящие испытания начинаются здесь

:галстук-бабочка:

Проблема 1 (5 минут):

Анализ значений объекта JSON:

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

Вход (объект):

var object = {name: «RajiniKanth», age: 33, hasPets: false};
Вывод:

[«RajiniKanth», 33, ложь]

Пример протокола функции:

var obj = {name : “RajiniKanth”, age : 33, hasPets : false};
function printAllValues(obj) {
 // your code here
}

Задача 2 (5 минут):

Анализ ключей объекта JSON:

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

Пример ввода:
{name: ‘RajiniKanth’, age: 25, hasPets: true}
Пример вывода:
[‘name’, ‘age’, ‘hasPets’]

Пример протокола функции:

function printAllKeys(obj) {
 // your code here
}

Задача 3 (7–9 минут):

Разбор объекта JSON и преобразование его в список:

Напишите функцию под названием convertObjectToList, которая преобразует литерал объекта в массив массивов.
Input (Object):
var object = {name: «ISRO», возраст: 35, роль: «Scientist» };
Вывод:
[[«имя», «ISRO»], [«возраст», 35], [«роль», «Ученый»]]

Пример протокола функции:

var obj = {name: “ISRO”, age: 35, role: “Scientist”};
function convertListToObject(obj) {
 // your code here
}

Задача 4 (5 минут):

Разбираем список и трансформируем его первый и последний элементы:

Напишите функцию transformFirstAndLast, которая принимает массив и возвращает объект с:
1) первым элементом массива в качестве ключа объекта и
2) последним элементом массива в качестве этого значение ключа.
Вход (массив):
var array = [«GUVI», «I», «am», «Geek»];
Выход:
var object = {
GUVI: «Компьютерщик»
}

Пример протокола функции:

var arr = [“GUVI”, “I”, “am”, “a geek”];
function transformFirstAndLast(arr) {
 
 return newObject;
}

Задача 5 (7-9 минут):

Разбор списка списков и преобразование в объект JSON:

Напишите функцию fromListToObject, которая принимает массив массивов и возвращает объект с каждой парой элементов в массиве в виде пары ключ-значение.
Вход (массив):
var array = [ [«Марка», «Форд»], [«модель», «Мустанг»], [«год», 1964]];
Вывод:
var object = {
make: « Ford »
модель:« Mustang »,
год: 1964
}

Пример протокола функции:

var arr = [[“make”, “Ford”], [“model”, “Mustang”], [“year”, 1964]];
function fromListToObject(arr) {
 var newObject = {};
 
 return newObject;
}

Задача 6 (10 минут):

Разбор списка списков и преобразование в объект JSON:

Напишите функцию с именем «transformGeekData», которая преобразует некоторый набор данных из одного формата в другой.

Вход (массив):
var array = [[[«firstName», «Vasanth»], [«lastName», «Raja»], [«age», 24], [«role», «JSWizard») ]], [[«FirstName», «Sri»], [«lastName», «Devi»], [«age», 28], [«role», «Coder»]]];
Вывод:
[
{firstName: «Vasanth», lastName: «Raja», возраст: 24, роль: «JSWizard»},
{firstName: «Sri», lastName: «Devi», возраст: 28 лет, роль: «Кодер»}
]

Пример протокола функции:

var arr= [[[“firstName”, “Vasanth”], [“lastName”, “Raja”], [“age”, 24], [“role”, “JSWizard”]], [[“firstName”, “Sri”], [“lastName”, “Devi”], [“age”, 28], [“role”, “Coder”]]];
function transformEmployeeData(arr) {
 var tranformEmployeeList = [];
 
 //Your code
 
 return tranformEmployeeList;
}

Задача 7 (10-20 минут):

Разбор двух объектов JSON и сравнение:

Прочтите это: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

Напишите функцию assertObjectsEqual с нуля.
Предположим, что рассматриваемые объекты содержат только скалярные значения (т. Е. Простые значения, такие как строки или числа).
Можно использовать JSON.stringify (). < br /> Примечание. В приведенных ниже примерах представлены различные варианты использования одного и того же теста. На практике никогда не следует проводить несколько тестов с одним и тем же именем.
Случай успеха:
Ввод:
var expected = {foo: 5, bar: 6};
var actual = {foo: 5, bar: 6}
assertObjectsEqual (фактический, ожидаемый, 'обнаруживает, что два объекта равны');
Вывод:
Пройден
Случай сбоя:
Ввод: var expected = {foo: 6, bar: 5};
var actual = {foo: 5, bar: 6}
assertObjectsEqual (actual, expected, 'обнаруживает, что два объекта равны ');
Результат:
FAILED [мой тест] Ожидается {«foo»: 6, «bar»: 5}, но получено {«foo»: 5, «bar»: 6}

var expected = {foo: 5, bar: 6};
var actual = {foo: 5, bar: 6}
function assertObjectsEqual(actual, expected, testName){
 // your code here
}

Задача 8 (10 минут):

Разбор объектов JSON и сравнение:

У меня есть фиктивные данные секретных вопросов и ответов. Ваша функция должна взять объект и пару строк и должна вернуться, если квест присутствует и если его правильный ответ.

var securityQuestions = [
 {
 question: “What was your first pet’s name?”,
 expectedAnswer: “FlufferNutter”
 },
 {
 question: “What was the model year of your first car?”,
 expectedAnswer: “1985”
 },
 {
 question: “What city were you born in?”,
 expectedAnswer: “NYC”
 }
]
function chksecurityQuestions(securityQuestions,question) {

 // your code here
 return true or false; 
}
//Test case1:
var ques = “What was your first pet’s name?”;
var ans  =  “FlufferNutter”;
var status = chksecurityQuestions(securityQuestions, ques, ans);
console.log(status); // true
//Test case2:
var ques = “What was your first pet’s name?”;
var ans  =  “DufferNutter”;
var status = chksecurityQuestions(securityQuestions, ques, ans);
console.log(status); // flase

Задача 9 (20 минут):

Разбор объектов JSON и сравнение:

Напишите функцию для возврата списка персонажей младше 20 лет.

var students = [
 {
 name: “Siddharth Abhimanyu”, age: 21}, { name: “Malar”, age: 25},
 {name: “Maari”,age: 18},{name: “Bhallala Deva”,age: 17},
 {name: “Baahubali”,age: 16},{name: “AAK chandran”,age: 23},   {name:“Gabbar Singh”,age: 33},{name: “Mogambo”,age: 53},
 {name: “Munnabhai”,age: 40},{name: “Sher Khan”,age: 20},
 {name: “Chulbul Pandey”,age: 19},{name: “Anthony”,age: 28},
 {name: “Devdas”,age: 56} 
 ];
function returnMinors(arr)
{
}
console.log(returnMinors(students));