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
- Добавьте рост и вес пушистому
- Имя Fluffy написано неправильно. Обновите его до Fluffyy
- Составьте список всех занятий друзей-кошек Fluffyy.
- Выведите имена друзей-кошек.
- Выведите общий вес кошек.
- Выведите общую активность всех кошек (op: 6)
- Добавьте еще 2 занятия в bar & foo cats
- Обновите цвет меха планки
Задача 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));