@procode
Разработчик

Есть ли в JavaScript аналог print_r(), var_dump() или dd() — посмотреть внутрь Object?

Здравствуйте.

Мне в jquery функция $.post().fail() возвращает некий Object (так он указан в консоли) - а чем можно посмотреть что это за обджект и что у него внутри?

Какие в javascript обычно используют для этого функции навроде упомянутых в сабже?

Спасибо!
  • Вопрос задан
  • 6242 просмотра
Пригласить эксперта
Ответы на вопрос 5
dollar
@dollar
Делай добро и бросай его в воду.
Обычно просто
console.log(obj)
Ответ написан
Комментировать
irishmann
@irishmann
Научись пользоваться дебаггером
Я пользуюсь вот этим
function print_r(arr, level) {
    var print_red_text = "";
    if(!level) level = 0;
    var level_padding = "";
    for(var j=0; j<level+1; j++) level_padding += "    ";
    if(typeof(arr) == 'object') {
        for(var item in arr) {
            var value = arr[item];
            if(typeof(value) == 'object') {
                print_red_text += level_padding + "'" + item + "' :\n";
                print_red_text += print_r(value,level+1);
		} 
            else 
                print_red_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
        }
    } 

    else  print_red_text = "===>"+arr+"<===("+typeof(arr)+")";
    return print_red_text;
}
/*пример вызова*/
alert(print_r(array));
/* или */
console.log(print_r(obj))
Ответ написан
@dmx00
Object.entries(obj)
Пожалуй самое близкое из встроенного, все предложенное выше (из встроенного) кстати не работает :) если у объекта есть _toString() , возьмите 404 от axios и поразвлекайтесь
Ответ написан
Комментировать
@Gromston
Возможно кому то пригодится, допилил функцию представленную выше:
function print_r(arr, level) {
    var print_red_text = '';
    var level_padding = '';
    var dopPadding = '    ';

    if(!level) 
        level = 0;
    
    for(var j=0; j<level+1; j++) {
        level_padding += "    ";
    }

    if (level > 1) {
        level_padding += dopPadding;
    }

    print_red_text = "Array \n" + (level > 0 ? level_padding + '' : '') + "(\n";

    if(typeof(arr) == 'object') {
        for(var item in arr) {
            var value = arr[item];
            if (typeof(value) == 'object') {
                print_red_text += (level > 0 ? level_padding + '' : '') + "    [" + item + "] => " + print_r(value, level+1) + "\n";
            } else {
                print_red_text += (level > 0 ? level_padding + '' : '') + "    [" + item + "] => " + value + "\n";
            }                 
        }
    } 
    else {
        print_red_text = "===>"+arr+"<===("+typeof(arr)+")";
    }

    print_red_text += (level > 0 ? level_padding : '') + ")\n";

    return print_red_text;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы