Skip to content

Instantly share code, notes, and snippets.

@dagolinuxoid
Last active January 26, 2017 09:14
Show Gist options
  • Save dagolinuxoid/d23fbed6a05f9dc0794fd03df708c9d6 to your computer and use it in GitHub Desktop.
Save dagolinuxoid/d23fbed6a05f9dc0794fd03df708c9d6 to your computer and use it in GitHub Desktop.
#JSON #KANTOR #answer
// Автор всё верно написал, но у Вас возникла объяснимая двусмысленность, сейчас поясню:
// Реализация слов автора
var str = '{"title":"Конференция","date":"2014-11-30T12:00:00.000Z"}';
var event = JSON.parse(str, function(key, value) {
if (key == 'date') return undefined; // Относится к этому месту кода; соответствующая пара key/value будет пропущена/удалена
return value;
});
// Ваша ошибочная интерпретация
var str = '{"title":"Конференция","date":"2014-11-30T12:00:00.000Z"}';
var event = JSON.parse(str, function(key, value) {
if (key == 'date') return 'something';
return undefined; // то, как Вы поняли формулировку
});
// PS. Если интересно, как именно работает реализация callback функции для метода JSON.parse,
// то взгляните на пример ниже - она схожа с работой для .map метода
var arr = ['a','b'];
var mapArr = arr.map(value => value.toLocaleUpperCase());
var jsonArr = JSON.stringify(arr);
jsonArr = JSON.parse(jsonArr,function(key,value){
if (typeof value === 'string') {
return value.toUpperCase();
}
return value;
});
jsonArr //["A", "B"]
mapArr //["A", "B"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment