1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 29

JSON.stringify и return

05.09.2022, 20:47. Показов 2217. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
  let users = {
        id: 1,
        login: 'harry',
        password: 'qwerty',
        status: 'admin',
        access: true
    }
   
const result = JSON.stringify(users, (key, value) => {
    if (key === 'id') return undefined;
   return value
})
console.log(result)
Не понятно почему return value работает (в т.ч. и для key), а return key нет ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2022, 20:47
Ответы с готовыми решениями:

Условие для выбора объекта в body:JSON.stringify()
Доброго времени суток. Необходимо написать условие для выбора объекта в JSON.stringify() . Как это можно сделать? ...

JSON decode и имя return
Как разложить подобный объект на части? { "return": { "success": "true", "number": 92.89, "event":...

Ajax controller return json
<script> $(document).ready(function () { $("#get").click(function () { var formdata = new...

18
 Аватар для NTHing
1782 / 963 / 388
Регистрация: 26.11.2014
Сообщений: 1,966
Записей в блоге: 1
05.09.2022, 22:52
Ещё раз, пожалуйста, в чём суть вопроса? Другими словами, пожалуйста...
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1703 / 431
Регистрация: 14.03.2022
Сообщений: 4,350
05.09.2022, 23:06
Цитата Сообщение от makle21 Посмотреть сообщение
Не понятно почему return value работает (в т.ч. и для key), а return key нет ?
Для более сложных ситуаций вторым параметром можно передать функцию function(key, value), которая возвращает сериализованное value либо undefined, если его не нужно включать в результат:
https://github.com/iliakan/jav... article.md

Т.е. там с выбором не особо...
1
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
05.09.2022, 23:42
Цитата Сообщение от NTHing Посмотреть сообщение
в чём суть вопроса? Другими словами, пожалуйста...
ТС невнимательно прочёл эту тему и не до конца понимает, как работает replacer. Хочет, чтобы ему объяснили на других двух пальцах.
1
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 29
06.09.2022, 12:26  [ТС]
Ну хорошо. Попробую объяснить свой вопрос. Хотя он вроде простой. В объекты вводятся свойства из двух составляющих: ключ и значение. Значение свойства вынимаются с помощью ключа : alert(user.name). Есть, конечно и конкретные методы типа Object.values(obj) и т.п. Но это на мой взгляд более специализированные (узкие) методы. В моем примере,конечно, преобразование объекта происходит через функцию. Но и тут для преобразования тоже вводятся две части свойства: ключ и значение. Логично было бы получить преобразованное значение value также через ключ. Но такая попытка здесь выдает ошибку. Речь ведь не идет о том, что преобразуется. А о том, почему вывод через ключ невозможен.
0
126 / 94 / 34
Регистрация: 24.06.2022
Сообщений: 253
06.09.2022, 12:34
makle21, вы смотрели примеры по предложенным выше ссылкам ? там же всё объясняется
0
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 29
06.09.2022, 12:37  [ТС]
[ И да, klyapa, ХРЕНЬ это круто. ]
0
126 / 94 / 34
Регистрация: 24.06.2022
Сообщений: 253
06.09.2022, 12:46
makle21,на ваш вопрос уже ответили.

Цитата Сообщение от makle21 Посмотреть сообщение
В моем примере,конечно, преобразование объекта происходит через функцию.
да нет же.
Цитата Сообщение от klyapa Посмотреть сообщение
ТС невнимательно прочёл эту тему и не до конца понимает, как работает replacer.
Посмотрите что такое replacer
в качестве replacer мы можем использовать функцию
0
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 29
06.09.2022, 12:54  [ТС]
Цитата Сообщение от js_advent
makle21, вы смотрели примеры по предложенным выше ссылкам ? там же всё объясняется
Если Вы о фразе "Для более сложных ситуаций вторым параметром можно передать функцию function(key, value), которая возвращает сериализованное value либо undefined, если его не нужно включать в результат" ? То, да, я читал. Вы сами мое объяснение читали?
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
06.09.2022, 12:57
makle21, я пока не понял, какой именно вариант не работает, и как он должен был бы работать?
0
126 / 94 / 34
Регистрация: 24.06.2022
Сообщений: 253
06.09.2022, 12:58
Цитата Сообщение от makle21 Посмотреть сообщение
Вы сами мое объяснение читали?
да читал, к сожалению , и вижу что вам пока не дошло. не все сразу, ничего страшного.
0
 Аватар для NTHing
1782 / 963 / 388
Регистрация: 26.11.2014
Сообщений: 1,966
Записей в блоге: 1
06.09.2022, 13:03
Вот это для начала поясните, пожалуйста, без абстракций, только суть.
Но такая попытка здесь выдает ошибку
0
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 29
06.09.2022, 13:42  [ТС]
Цитата Сообщение от DrType Посмотреть сообщение
makle21, я пока не понял, какой именно вариант не работает, и как он должен был бы работать?
Уф! Ну хорошо. Попробую зайти с другой стороны. В функцию от replacer введены два значения: key и value. Если бы было введено одно значение - value, функция бы не сработала. Так? Значит ключ Key тут активный. В процессе участвует. Дальше. Строчка " if (key === 'id') return undefined;" тоже показывает, что Key активный и участвует в выводе (невыводе) значения. И при попытке вывода окончательного ответа через тот же Key " return key " логично было бы ожидать в сериализованном объекте вывод "ключ: значение". Но вместо этого ошибка. Key становится неактивным. Для меня это непонятно.
0
 Аватар для NTHing
1782 / 963 / 388
Регистрация: 26.11.2014
Сообщений: 1,966
Записей в блоге: 1
06.09.2022, 14:12
Replacer также сериализуется, как и остальные поля в объекте. При этом на выходе key это пустая строка, а value это сам объект. Поэтому если return key, то итерация останавливается и возвращается пустая строка. Правильно я вас понимаю?
1
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 29
06.09.2022, 14:37  [ТС]
Цитата Сообщение от NTHing Посмотреть сообщение
При этом на выходе key это пустая строка, а value это сам объект. Поэтому если return key, то итерация останавливается и возвращается пустая строка.
value превращается в объект. Делится на две составные: ключ, значение. Значение ключа забирает у Key, оставляя его как переменную, но очищая. И в процессе он больше не участвует. Все так? Какая-то сложная перетурбация. Милое дело было бы, как во всех обычных объектах выводить значение по ключу. Спасибо за помощь.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
06.09.2022, 14:44
Цитата Сообщение от makle21 Посмотреть сообщение
Не понятно почему return value работает (в т.ч. и для key), а return key нет ?
Вы имеете в виду, почему код ниже возвращает пустую строку?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
let users = {
        id: 1,
        login: 'harry',
        password: 'qwerty',
        status: 'admin',
        access: true
    }
   
const result = JSON.stringify(users, (key, value) => {
    if (key === 'id') return undefined;
   return key;
})
console.log(result) // ""
Если да, то как сказано в уроке по ссылке выше:
Первый вызов – особенный. Ему передаётся специальный «объект-обёртка»: {"": meetup}. Другими словами, первая (key, value) пара имеет пустой ключ, а значением является целевой объект в общем. Вот почему первая строка из примера выше будет ":[object Object]".
Соответственно на первой итерации в value будет весь объект целиком. Поскольку вы делаете return key, в а key, как мы уже поняли, пустая строка, то весь объект вы превращаете в эту самую пустую строку.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1703 / 431
Регистрация: 14.03.2022
Сообщений: 4,350
06.09.2022, 14:55
makle21, вот так сработает
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
let users = {
        id: 1,
        login: 'harry',
        password: 'qwerty',
        status: 'admin',
        access: true
    }
   
const result = JSON.stringify(users, (key, value) => {
    if (key === 'id') return undefined;
    if (key !== '') return key;
    return value;
})
console.log(result)
2
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 29
06.09.2022, 16:31  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
makle21, вот так сработает
{"login":"login","password":"password"," status":"status","access":"access"}

Творческий подход. Засчитано!

Добавлено через 24 минуты
Цитата Сообщение от Balanaar Посмотреть сообщение
Поскольку вы делаете return key, в а key, как мы уже поняли, пустая строка, то весь объект вы превращаете в эту самую пустую строку.
Но это же касается только первого вызова. По объекту в целом. А дальнейшие вызовы уже по содержанию показывают, что значения ключей сохранены. Да и по тому уроку видно, что даже при пустом ключе значение [objectObject] остается.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
06.09.2022, 17:43
Цитата Сообщение от makle21 Посмотреть сообщение
Но это же касается только первого вызова
Ну так вы на первом вызове взяли и затёрли объект целиком. Дальнейших вызовов просто не будет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.09.2022, 17:43
Помогаю со студенческими работами здесь

Что это isOk(int s),setAge(int g){if(isOk(g){age=g;return true;}else{.;return false;}}.getName(){return name;}?
package com.company; import java.io.Serializable; public class person implements Serializable { protected String name; ...

Что такое в jquery и java return false и return true
Если я правильно понимаю, то return false отменяет действие по умолчанию, например клик по ссылке, а return true это наоборот приводит в...

Односвязный список - объясните, как работают return 0 и return 1
проверьте, пжлса, по комментариям правильно ли я поняла принцип работы программы. Объясните, как здесь работают return 0 и return 1. и...

В чем разница между return и return false/true
Привет всем. Вот подскажите плиз) return; return false; return true; расскажите пожалуйста об етих операторах.. чем они...

How can to return value (return value; ) of javascript function to ASP ?
How can to return value (return value; ) of javascript function to ASP ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru