অবজেক্ট ডাম্প জাভাস্ক্রিপ্ট


91

জাভা স্ক্রিপ্ট অবজেক্টের জন্য স্ক্রিপ্ট ডিবাগারে অবজেক্ট ম্যাপ ডাম্পিংয়ের কোনও তৃতীয় পক্ষের অ্যাড-অন / অ্যাপ্লিকেশন বা কোনও উপায় আছে?

এখানে পরিস্থিতি ... আমার কাছে দুটি পদ্ধতি কল করার পদ্ধতি রয়েছে এবং প্রতিটি সময় কিছু আলাদা হয়। আমি আলাদা কি তা নিশ্চিত নই, তবে কিছু। সুতরাং, যদি আমি উইন্ডোটির সমস্ত বৈশিষ্ট্য (বা কমপক্ষে উইন্ডো.ডোকামেন্ট) কোনও পাঠ্য সম্পাদককে ডাম্প করতে পারি, তবে আমি দুটি কলের মধ্যে রাষ্ট্রকে একটি সহজ ফাইল ডিফের সাথে তুলনা করতে পারি। ভাবনা?


উত্তর:


61

ফায়ারব্যাগ +console.log(myObjectInstance)


4
... এবং তারপরে ফায়ারবগ কনসোলটি দেখুন এবং মানক জাভাস্ক্রিপ্ট কনসোলটি নয় । :-)
তোয়াই

4
আইইয়ের একটি কনসোল রয়েছে তবে লগিং করে কোনও অবজেক্ট রিটার্ন দেয় [object Object]। খুব দরকারী নয়
স্টিভ রবিন্স

6
@ স্টেভরবিনস, আজকাল ওয়েব অ্যাপ্লিকেশন বিকাশ করতে আইই ব্যবহার করেন? ইন্টারনেট এক্সপ্লোরারের জন্য আমি এখনও অবধি ব্যক্তিগতভাবে কেবলমাত্র ব্যবহারের সন্ধান পেয়েছি হ'ল একবার আমি আমার উইন্ডোজ অপারেটিং সিস্টেমটি পুনরায় ইনস্টল করে একটি সত্যিকারের ওয়েব ব্রাউজারটি ডাউনলোড করি। যাইহোক আমি একমাত্র এই সফটওয়্যারের শান্তি চালু করি।
দারিন দিমিত্রভ

9
যে কোনও বিকাশকারী প্রধান ব্রাউজারগুলিকে সমর্থন করে। যদি সমস্যাটি কেবলমাত্র আইইতে থাকে তবে এটি কেবল আইইতে পরীক্ষা করা যেতে পারে, তাই আপনাকে ব্রাউজারটি ব্যবহার করতে হবে।
স্টিভ রবিনস

4
এবং আপনি যদি নোড.জেএস এবং একটি টার্মিনাল ব্যবহার করছেন .. কোনও ফায়ারব্যাগ নেই ??
চেরুভিম

138
console.log("my object: %o", myObj)

অন্যথায় আপনি কখনও কখনও প্রদর্শিত একটি স্ট্রিং প্রতিনিধিত্ব সঙ্গে শেষ হবে:

[object Object]

বা এই জাতীয় কিছু।


পৃথিবীতে কীভাবে এটি নির্বাচিত উত্তর নয়? ভাগ্যবান আমার যে এই উত্তরটি আমার জন্মদিনে 4 বছর আগে দেওয়া হয়েছিল, যখন আমি জেএস ব্যবহার করছিলাম না।
জোয়ে কারসন

4
উল্কায় (সার্ভার-সাইড) এটি মুদ্রণ করে my object: %o। খুব সহায়ক নয় :)
এরদল জি।

নোড.জেজে এটি "%o"আউটপুটে কেবল আক্ষরিক মুদ্রণ করে । স্ট্রিংটি অবজেক্ট থেকে নিছকভাবে পৃথক করা মানব-পঠনযোগ্য বস্তুকে পছন্দসই হিসাবে ফেলে দেয়।

মজার বিষয় কীভাবে এটি বিকশিত হয়েছে। এখন console.log("my", myObj)কেবল %oক্রোম, ফায়ারফক্স, অপেরা, আইই 11, এজ-তে উপস্থিত থাকার ভান করে ।
বব স্টেইন

45
function mydump(arr,level) {
    var dumped_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') { 
                dumped_text += level_padding + "'" + item + "' ...\n";
                dumped_text += mydump(value,level+1);
            } else {
                dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
            }
        }
    } else { 
        dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
    }
    return dumped_text;
}

4
ক্রিয়াকলাপের নাম পরিবর্তন করে আপনার কোড আপডেট করুন, যেমন পুনরাবৃত্তি কল হিসাবে, এটির "ডাম্প" বলা হয় সময়টির "মাইডাম্প" সংজ্ঞায়িত করার সময়
বিকাশ

8
এর অনুলিপি এবং পেস্ট করুন: binnyva.blogspot.com/2005/10/…
utopianheaven

4
এটি যখন কোনও জেকারি অবজেক্ট পরীক্ষা করার জন্য ব্যবহৃত হয় তখন "অত্যধিক পুনরাবৃত্তি" সহ ক্রোম এবং ফায়ারফক্সকে হত্যা করে
স্ল্যাশডটটিয়ার

@ স্ল্যাশডোটিয়ার এটি পরীক্ষা করা সহজ, চেক করেif (level > 10) return level_padding + '<< too deep >>';
জন হেন্কেল

"অত্যধিক পুনরাবৃত্তি" বৃত্তাকার রেফারেন্সের কারণে ঘটে (যখন কোনও বস্তুর শিশু প্যারামিটার তার প্যারেন্ট অবজেক্টকে রেফার করে)। বর্তমান মানের সমস্ত পিতামাতাকে স্মরণ করে সমাধান করা যেতে পারে এবং যদি বর্তমান মান পিতামাতার একটির সাথে মিলে যায় তবে আরও খনন বন্ধ করুন।
অ্যালেক্স ভেলিক্য

42

আপনি যদি ক্রোম, ফায়ারফক্স বা আই 10 10 তে থাকেন তবে কেন কনসোলটি প্রসারিত করবেন না এবং ব্যবহার করুন

(function() {
    console.dump = function(object) {
        if (window.JSON && window.JSON.stringify)
            console.log(JSON.stringify(object));
        else
            console.log(object);
    };
})();

সংক্ষিপ্ত, ক্রস ব্রাউজার সমাধানের জন্য।


আমার এটা ভাল লেগেছে. বিশেষত ব্রাউজারের জন্য যা অবজেক্ট ডাম্পিং সমর্থন করে না।
এলে

এবং সম্ভবত এটি "অন্য কনসোল.লগ (অবজেক্ট)" প্রতিস্থাপন করুন; উপরে স্ট্যাকওভারফ্লো . com/ a/ 3011557/2236012 ? ...;) হিসাবে কাস্টম ট্র্যাভারসাল ফাংশনে কল করার জন্য
সিবি

@ সিবি "অত্যধিক পুনরাবৃত্তি" এবং একটি হিমায়িত ব্রাউজার যা ফায়ারফক্স এবং ক্রোমে আমাকে পেয়েছে।
স্ল্যাশডটটার

4
JSON.stringify চক্রীয় কাঠামোগত সিরিয়ালাইজ করতে পারে না। এটি সমস্ত বস্তুর জন্য কাজ করবে না।
গ্রজেগোর্স লুসজিও

25

শুধু ব্যবহার করুন:

console.dir(object);

আপনি একটি দুর্দান্ত ক্লিকযোগ্য বস্তুর উপস্থাপনা পাবেন। ক্রোম এবং ফায়ারফক্সে কাজ করে


4
ক্রোম এবং ফায়ারফক্স [অবজেক্ট অবজেক্ট]
স্ল্যাশডটটিয়ার

আপনি এটি কনসোল (হিট F12) এ পরীক্ষা করে দেখতে পারেন যে console.dir({bar:"foo"}); আপনার অবজেক্টটি কি টস্ট্রিং পদ্ধতিতে ওভাররাইট করে?
দৈত্য droid

অন্তত কনসোলে কাজ করছে বলে মনে হচ্ছে। সম্ভবত আমার দ্বারা ব্যবহারকারী আপনাকে ধন্যবাদ
স্ল্যাশডটটিয়ার

যেমন একটি মিষ্টি বৈশিষ্ট্য
tomalone

আপনি স্যার একটি নায়ক
j

12

ক্রোম / ক্রোমিয়ামের জন্য

console.log(myObj)

বা এটি সমতুল্য

console.debug(myObj)

10

আরও ভাল পঠনযোগ্যতার জন্য আপনি নিচের মতো অবজেক্টটিকে জসন স্ট্রিংয়ে রূপান্তর করতে পারেন:

console.log(obj, JSON.stringify(obj));

https://developer.mozilla.org/en-US/docs/Web/JavaScript/ উল্লেখ / গ্লোবাল_অবজেক্টস / জেএসএন / স্ট্রিংফাইফাই


হ্যাঁ এটি সত্যিই সহায়তা করে
আল্প আলটুনেল

4

ব্যবহার console.log(object)আপনার জাভাস্ক্রিপ্ট কনসোলটিতে ফেলে দেবে তবে আপনি যা চান তা সর্বদা তা নয়। ব্যবহার করে JSON.stringify(object)বেশিরভাগ স্টাফ ভেরিয়েবলের মধ্যে সংরক্ষণের জন্য ফিরে আসবে, উদাহরণস্বরূপ এটি কোনও টেক্সারিয়া ইনপুটটিতে প্রেরণ করা এবং সামগ্রীতে সার্ভারে জমা দেওয়া।


0

ক্রোমে, 3 টি বিন্দুতে ক্লিক করুন এবং আরও সরঞ্জামগুলি ক্লিক করুন এবং বিকাশকারীকে ক্লিক করুন। কনসোলে কনসোল.ডির (আপনারঅজেক্ট) টাইপ করুন। একটি উদাহরণ চিত্র দেখতে এই লিঙ্কে ক্লিক করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.