260
Студентов
78%
Завершения
JavaScript содержит метод JSON.stringify()
для приведения к строке любого значения. Он работает следующим образом:
JSON.stringify('hello'); // "hello" - для строковых значений добавляются кавычки
JSON.stringify(true); // true - значение приведено к строке, но без кавычек
JSON.stringify(5); // 5
const data = { hello: 'world', is: true, nested: { count: 5 } };
JSON.stringify(data); // {"hello":"world","is":true,"nested":{"count":5}}
JSON.stringify(data, null, 2); // null, 2 - указывают на два пробела перед ключом
// ключам добавляются кавычки
// в конце каждой строчки (линии) добавляется запятая, если имеется значение ниже
// {
// "hello": "world",
// "is": true,
// "nested": {
// "count": 5
// }
// }
solution.py
Реализуйте функцию stringify()
, похожую на JSON.stringify()
, но со следующими отличиями:
- ключи и строковые значения должны быть без кавычек;
- строчка (линия) в строке заканчивается самим значением, без запятой.
Синтаксис:
stringify(value[, replacer[, spaces_count]])
Параметры:
- value
- Значение, преобразуемое в строку.
- replacer, необязательный
- Строка – отступ для ключа; Значение по умолчанию – один пробел.
- spacesCount, необязательный
- Число – количество повторов отступа ключа. Значение по умолчанию – 1.
from solution import stringify
stringify('hello') # значение приведено к строке, но не имеет кавычек
# hello
stringify(True)
# True
stringify(5)
# 5
data = { "hello": "world", "is": True, "nested": { "count": 5 } }
stringify(data) # то же самое что stringify(data, ' ', 1)
# {
# hello: world
# is: True
# nested: {
# count: 5
# }
# }
stringify(data, '|-', 2) # символ, переданный вторым аргументом повторяется столько раз, сколько указано третьим аргументом
# {
# |-|-hello: world
# |-|-is: True
# |-|-nested: {
# |-|-|-|-count: 5
# |-|-}
# }
Подсказки
- чтобы лучше понять как работает
JSON.stringify()
, запускайте его с разными данными и параметрами в консоли браузера. проверки в тестах идут от простого к сложному:
- проверка на примитивных типах;
- проверка на "плоских" данных;
- проверка на "вложенных" данных.
реализуйте функцию так же пошагово, проверяя, что изменения для сложных кейсов не сломали более простые;
документация по JSON.stringify на MDN.
Для полного доступа к испытанию нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.