কোনও কনসোল লগতে প্রদর্শিত হলেও বস্তুর সম্পত্তি অ্যাক্সেস করতে পারে না


329

নীচে, আপনি এই দুটি লগ থেকে আউটপুট দেখতে পারেন। প্রথমটিতে আমি যে সম্পত্তিটি অ্যাক্সেস করার চেষ্টা করছি তার সাথে সম্পূর্ণ স্পষ্টরূপটি দেখায়, তবে কোডের ঠিক পরের লাইনে, আমি এটিকে অ্যাক্সেস করতে পারি না config.col_id_3(স্ক্রিনশটের "অপরিজ্ঞাত" দেখুন?) কেউ কি এই ব্যাখ্যা করতে পারেন? আমি field_id_4পাশাপাশি অন্য সমস্ত সম্পত্তি অ্যাক্সেস পেতে পারেন ।

console.log(config);
console.log(config.col_id_3);

এই লাইনগুলি কনসোলে মুদ্রণ করে

কনসোল আউটপুট


6
আপনি কি console.log(JSON.stringify(config));উত্তরগুলি ভাগ করে নেওয়ার চেষ্টা করতে পারেন
অরুণ পি জনি

2
এটি চেষ্টা করুন, যদি এটি কনসোল.লগ (কনফিগার ['col_id_3']) কাজ করে;
zzlalani

5
এটি আমার জন্য কাজ করেছে। ওয়ার্কিং বস্তুর জন্য নতুন ইনপুট হিসাবে stringified আউটপুট ব্যবহার করছে: JSON.parse (JSON.stringify (obj))
বৌদ্ধস্তূপ

2
স্ট্রাইফাইং এবং তারপরে পার্সিং কোনও কারণে সমস্যাটি সমাধান করেনি। তবে পুরোপুরি পার্সিং করা হয়েছে। JSON.parse(obj)
জ্যাকবপরিসৌ

3
কোনও কারণে সমস্ত উত্তর কীভাবে কী ছাড়াই অবজেক্টটি লগ করতে হয় তা কী কী অ্যাক্সেস করবেন না তা ব্যাখ্যা করে
remidej

উত্তর:


296

এর আউটপুট console.log(anObject)বিভ্রান্তিকর; প্রদর্শিত কনট্রোলটি কেবল তখনই সমাধান করা হবে যখন আপনি কনসোলটিতে প্রসারিত করবেন >। এটা না বস্তুর রাষ্ট্র যখন আপনি console.log'অবজেক্ট ঘ।

পরিবর্তে, চেষ্টা করুন console.log(Object.keys(config)), বা এমনকি console.log(JSON.stringify(config))এবং আপনি কীগুলি বলেছিলেন, বা আপনি যখন ডাকছিলেন তখন অবজেক্টের অবস্থা দেখতে পাবেন console.log

আপনি (সাধারণত) আপনার কলের পরে কীগুলি যুক্ত করা হবে তা দেখতে পাবেন console.log


11
এই আচরণটি কি কোনও বাগ বা কোনও বৈশিষ্ট্য? যদি এটি কোনও বৈশিষ্ট্য থাকে তবে এর পিছনে যুক্তি কী?
ESR

2
তাহলে কীভাবে কেউ এর চারপাশে যায়? সময়সীমা নির্ধারণ করা কোনও ভাল সমাধান বলে মনে হয় না।
সাহান্দ

9
তারপরে আমরা কীভাবে এই সম্পত্তিটি অ্যাক্সেস করতে পারি?
রোহিত শর্মা

স্পষ্ট করে বলতে গেলে, >অ্যারের প্রসারিত হচ্ছে, বা কোনও অবজেক্টের উপর নির্ভর করে বোতামের আচরণ কী আলাদা?
ফ্লিম

কিছু পরীক্ষা নিরীক্ষা করে মনে হচ্ছে আপনি এই সমস্যাটি এমনকি কোনও অ্যারে নিয়ে এসেছেন, সুতরাং আমি পরিবর্তে JSON.stringify করার পরামর্শ দেব।
ফ্লিম

62

মংগুজ ব্যবহার করে মোংগোডিবি থেকে লোড হওয়া একটি দস্তাবেজটি নিয়ে আমি এই সমস্যাটি নিয়ে এসেছি ।

console.log()পুরো অবজেক্টে চলার সময় , সমস্ত নথির ক্ষেত্র (ডিবিতে সঞ্চিত হিসাবে) প্রদর্শিত হবে। তবে কিছু পৃথক সম্পত্তি অ্যাকসেসর ফিরে আসত undefined, যখন অন্যরা (সহ _id) ভাল কাজ করেছিল।

দেখা গেছে যে সম্পত্তি অ্যাক্সেসরগুলি কেবলমাত্র আমার mongoose.Schema(...)সংজ্ঞা অনুসারে নির্দিষ্ট ক্ষেত্রগুলির জন্য কাজ করে , console.log()এবং JSON.stringify()ডিবিতে সঞ্চিত সমস্ত ক্ষেত্রকে ফিরিয়ে দেয়।

সমাধান (যদি আপনি মংগুজ ব্যবহার করছেন) : আপনার সমস্ত ডিবি ক্ষেত্রের মধ্যে সংজ্ঞা আছে কিনা তা নিশ্চিত করুন mongoose.Schema(...)


এই সমস্যার দুর্দান্ত ব্যাখ্যায়, আমি বুঝতে পেরেছি যে মঙ্গুজ আমাকে স্কিমা ছাড়াই (বাইরের স্ক্রিপ্টে) জাসনকে জিজ্ঞাসা করতে দেবে, তবে লেখাগুলি আটকাবে। এটি কাজ করে বলে মনে হচ্ছে কারণ _id উপস্থিত, এবং কনসোল.লগ বলছে যে সমস্ত কিছু অ্যাক্সেসযোগ্য হওয়া উচিত, তবে তা নয়। উদ্ভট।
bstar

7
দেখা যাচ্ছে আমি এটি JSON.stringify()দেখছিলাম কারণ (এবং নোডের console.log()) প্রদত্ত বস্তুর কোনও .toJSON()ফাংশন থাকলে তাদের আচরণ পরিবর্তন করে । আপনি যে আউটপুটটি দেখছেন তা হ'ল .toJSON()মূল বস্তুটি নয়। মঙ্গুজ আপনাকে একটি মডেল অবজেক্ট .toJSON()দেয় যা অন্তর্নিহিত ডিবি অবজেক্ট দেয়। মডেল অবজেক্টটির কেবলমাত্র আপনি স্কিমাতে সংজ্ঞায়িত ক্ষেত্রগুলির জন্য কেবল অ্যাক্সেসর রয়েছে তবে আপনি লগ করার সময় সমস্ত ডিবি ক্ষেত্র উপস্থিত হয় কারণ আপনি প্রকৃতপক্ষে ফিরে আসা অন্তর্নিহিত অবজেক্টটি দেখছেন .toJSON()
রমিন

কেন মঙ্গুজ অন্যান্য বৈশিষ্ট্যগুলি পড়তে দেয় না আপনার কোনও ধারণা আছে?
কান্নান টি

মোংডবায় সিএসভি আপলোড এবং সম্পত্তি আনার সময় এটি আমার পক্ষে সহায়ক ছিল। আপনার নাম মেলে তা নিশ্চিত করুন। দুর্দান্ত উত্তর আপনাকে ধন্যবাদ।
9BallOnTheSnap

1
এই জন্য আপনাকে ধন্যবাদ. আমি এটি কনসোলে দেখে পাগল হয়ে যাচ্ছিলাম এবং এটি অ্যাক্সেস করতে সক্ষম হচ্ছিলাম না। আমার স্কিমাতে মান যুক্ত হয়েছে এবং আমি যেতে ভাল। আবার ধন্যবাদ!
alittletf

27

বস্তুর ভিতরে অ্যারেজের একটি অ্যারে রয়েছে কিনা তা পরীক্ষা করুন। জেএসএনের সাথে আমারও একই সমস্যা ছিল:

    "terms": {
        "category": [
            {
                "ID": 4,
                "name": "Cirugia",
                "slug": "cirugia",
                "description": "",
                "taxonomy": "category",
                "parent": null,
                "count": 68,
                "link": "http://distritocuatro.mx/enarm/category/cirugia/"
            }
        ]
    }

আমি 'বিভাগ' থেকে 'নাম' কীটি অ্যাক্সেস করার চেষ্টা করেছি এবং আমি অপরিজ্ঞাত ত্রুটি পেয়েছি , কারণ আমি ব্যবহার করছি:

var_name = obj_array.terms.category.name

তারপরে আমি বুঝতে পারলাম এটি স্কোয়ার বন্ধনী পেয়েছে, এর অর্থ এটি বিভাগ কী এর অভ্যন্তরে একটি অ্যারে রয়েছে, কারণ এটিতে একাধিক বিভাগের অবজেক্ট থাকতে পারে। সুতরাং, 'নাম' কীটি পেতে আমি এটি ব্যবহার করেছি:

var_name = obj_array.terms.category[0].name

এবং এটি কৌশল করে।

সম্ভবত এই উত্তরের জন্য খুব দেরি হয়ে গেছে, তবে আমি আশা করি যে সমাধানটি খুঁজে পাওয়ার আগে আমি একই সমস্যাটি পেয়েছি সে যেমন এটি পেয়েছে :)


23

আমারও একই প্রশ্ন ছিল. আমার জন্য সমাধানটি স্ট্রিংফাইড আউটপুটটি জেএসএন পার্স করার জন্য ইনপুট হিসাবে ব্যবহার করছিল। এটি আমার জন্য কাজ করেছে। আশা করি এটি আপনার কাজে লাগবে

var x =JSON.parse(JSON.stringify(obj));
console.log(x.property_actually_now_defined);

2
হ্যাঁ এটি কাজ করেছে, তবে কেন এটি প্রয়োজনীয়? আমার ইতিমধ্যে জেএসএন রয়েছে, আমাকে কেন এটি করা দরকার?
জেইন

@ দিলপেশজাইন আমি ঠিক নিশ্চিত নই, তবে আমি উদ্যোগ নিয়েছিলাম যে আমরা ইতিমধ্যে জেএসএনকে দেখতে পাচ্ছি না (সম্ভবত এখানে একটি অলস লোডিংয়ের প্রবণতা চলছে, আমি এই মুহুর্তে এ বিষয়ে যথেষ্ট জ্ঞাত নই), তবে আমাদের যা যা আছে তা পার করছি JSON.stringify এ ফেরার জন্য একটি স্ট্রিং দরকার (যেমন মুদ্রণের জন্য কনসোল.লগ কল প্রয়োজন)। কারণ আমি জানি আমি কমপক্ষে একটি স্ট্রিং পেতে পারি, তবে আমি এখনই নিশ্চিত হয়ে স্ট্রিংটি একটি JSON অবজেক্ট তৈরি করতে পারি।
বৌদ্ধস্তূপ

4
@ জেইন আপনার এটির প্রয়োজন কারণ জাভাস্ক্রিপ্ট হ'ল এক ভয়ঙ্কর ভাষা

22

আপনি যে সম্পত্তিটি অ্যাক্সেস করার চেষ্টা করছেন সেটি এখনও অস্তিত্ব থাকতে পারে। কনসোল.লগ কাজ করে কারণ এটি অল্প বিলম্বের পরে কার্যকর হয়, তবে এটি আপনার কোডের বাকী ক্ষেত্রে নয়। এটা চেষ্টা কর:

var a = config.col_id_3;    //undefined

setTimeout(function()
{
    var a = config.col_id_3;    //voila!

}, 100);

1
আমি আমার অবজেক্টের মান পেতে অনলোড পদ্ধতি ব্যবহার করতাম still তবে এখনও আমাকে প্রথমবারে অপরিবর্তিত রাখে .. এই ভাষাটি আমাকে দিনে দিনে মৃত করে তোলে
Teoman Tıngır

একটি সহজ সমাধান হ'ল কোনও প্রহরী প্রতিশ্রুতি বাস্তবায়ন করা যা পছন্দসই সম্পত্তিটি সেটটাইমআউটের সাথে সংজ্ঞায়িত করা হয়েছে কিনা তা পরীক্ষা করে, এবং সম্পত্তিটি উপলব্ধ হয়ে ওঠার পরে সময়সীমাটি সাফ করে দেয়।
লাই জিউ

কি দারুন. আমার প্রায় 15 বছরের ওয়েব প্রোগ্রামিংয়ে আমি কখনই এর মুখোমুখি হইনি এবং কনসোল লগ কীভাবে কাজ করে তা কখনই ভাবিনি। আপনার উত্তর কিছুটা পরিষ্কার করতে সহায়তা করেছে।
কাই কিং

12

আমার ক্ষেত্রে আমি একটি প্রতিশ্রুতিতে একটি বস্তুটি পাস করছিলাম, প্রতিশ্রুতির মধ্যেই আমি বস্তুটিতে আরও কী / মান যুক্ত করেছিলাম এবং যখন এটি করা হয়ে যায় তখন বস্তুটি প্রত্যাবর্তন করে।

তবে আমার দিক থেকে কিছুটা দেখার জন্য, প্রতিশ্রুতিটি সম্পূর্ণরূপে শেষ হওয়ার আগে অবজেক্টটি ফিরিয়ে দিচ্ছিল ... এইভাবে আমার বাকী কোডটি আপডেট হওয়া অবজেক্টটি প্রক্রিয়া করার চেষ্টা করছে এবং ডেটা এখনও ছিল না। তবে উপরের মতো, কনসোলে, আমি বস্তুটি সম্পূর্ণরূপে আপডেট হয়ে দেখেছি কিন্তু কীগুলি অ্যাক্সেস করতে সক্ষম হইনি - সেগুলি অপরিবর্তিত ফিরে আসছিল। যতক্ষণ না আমি এটি দেখেছি:

console.log(obj) ;
console.log(obj.newKey1) ;

// returned in console
> Object { origKey1: "blah", origKey2: "blah blah"} [i]
    origKey1: "blah"
    origKey2: "blah blah"
    newKey1: "this info"
    newKey2: "that info"
    newKey3: " more info"
> *undefined*

[I] হ'ল একটি সামান্য আইকন, যখন আমি এটির উপরে লুকিয়েছিলাম তখন বলা হয়েছিল Object value at left was snapshotted when logged, value below was evaluated just now। আমার যখন প্রতিশ্রুতিটি সম্পূর্ণরূপে আপডেট হওয়ার আগে আমার বিষয়টিকে মূল্যায়ন করা হয়েছিল তখন আমার মনে হয়।


10

আমি আজ এই সমস্যাটির সাথে লড়াই করেছি এবং ভেবেছিলাম আমার সমাধান দিয়ে একটি উত্তর ছেড়ে দেব।

আমি এজাক্সের মাধ্যমে একটি ডেটা অবজেক্ট আনছিলাম, এরকম কিছু: {"constants": {"value1":"x","value2":"y"},"i18n" {"data1":"x", "data2":"y"}}

ধরা যাক এই অবজেক্টটি ডেটা নামক একটি ভেরিয়েবলে রয়েছে। আমি যখনই রেফারেন্স data.i18nপেয়েছি undefined

  1. console.log(data) প্রত্যাশিত হিসাবে বস্তু দেখিয়েছেন
  2. console.log(Object.keys(data)) বললেন ["constants","i18n"]প্রত্যাশিত হিসাবে
  3. পুনঃনামকরণ করা i18n করার আন্তঃ কিছু পরিবর্তন করা হয়নি
  4. এমনকি "i18n" প্রথম অবজেক্টটি তৈরি করতে আমি ডেটা স্যুইচ করার চেষ্টা করেছি
  5. অবজেক্টটি পুরোপুরি সেট হয়ে গেছে এবং এজাক্স প্রতিশ্রুতিতে কোনও সমস্যা ছিল না তা নিশ্চিত করতে চারপাশে কোডটি সরানো হয়েছিল।

কিছুই সাহায্য করেনি ... তারপরে সার্ভারের দিকে আমি পিএইচপি লগতে ডেটা লিখেছিলাম এবং এটি প্রকাশ করেছে:

{"constants": {"value1":"x","value2":"y"},"\u045618n" {"data1":"x", "data2":"y"}}

ইনডেক্স কীতে "i" আসলে একটি u0456 (সিরিলিক আই) ছিল। এটি আমার পিএইচপি সম্পাদক বা ব্রাউজার কনসোল লগটিতে দৃশ্যমান ছিল না। কেবল পিএইচপি লগই এটি প্রকাশ করেছিল ... এটি ছিল এক জটিল ...


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

এই উত্তরটি আমাকে আমার সমাধান খুঁজতে সাহায্য করেছিল। আমার সমস্যাটি হ'ল আমি আমার পরিবর্তনশীল নামটি ভুল বানান করেছিলাম। আমি "আপডেট" LOL এর পরিবর্তে "udpate" করেছি
সাভলন

8

আমার ডেটা কেবল জসন ডেটা স্ট্রিং ছিল। (এই পরিবর্তনশীলটি সেশনে জসন স্ট্রিং হিসাবে সংরক্ষণ করা হয়েছিল)।

console.log(json_string_object)

-> কেবল এই স্ট্রিংয়ের উপস্থাপনা ফেরত দেয় এবং স্ট্রিং বা অবজেক্ট কিনা তা পার্থক্য করার কোনও উপায় নেই।

সুতরাং এটির কাজটি করার জন্য আমার এটিকে আবার আসল বস্তুতে রূপান্তর করা দরকার:

object = JSON.parse(json_string_object);

এটি আমার পক্ষে কাজ করা একমাত্র উত্তর এবং মূল প্রশ্নের মন্তব্যেও এটি উল্লেখ করা হয়েছে, এটি আরও বেশি হওয়া উচিত।
abagh0703

5

2018 সালে মোজিলা এখানে মোজিলা ডক্সে আমাদের সতর্ক করে !

আমি "লগিং অবজেক্টস" উদ্ধৃত করছি :

ব্যবহার করবেন না console.log(obj);, ব্যবহার করুনconsole.log(JSON.parse(JSON.stringify(obj)));

আপনি লগইন করার মুহুর্তে আপনি নিশ্চিত হন যে আপনি আপত্তিটির মানটি দেখছেন।


4

এটি কারওর সাহায্য করতে পারে কারণ আমার সাথে একই রকম সমস্যা রয়েছে যার মধ্যে JSON.parse () কোনও কনটোল.লগ () এ মুদ্রণ করতে পারে এমন একটি বস্তু ফিরিয়ে দিচ্ছিল তবে আমি নির্দিষ্ট ক্ষেত্রগুলি অ্যাক্সেস করতে পারিনি এবং উপরের সমাধানগুলির কোনওটির জন্যই কাজ হয়নি আমাকে. JSON.parse () এর JSON.stringify () এর সংমিশ্রণটি ব্যবহার করার মতো।

var jsonObj = JSON.parse(JSON.stringify(responseText))

// where responseText is a JSON String returned by the server.

console.log(jsonObj) ///Was printing the object correctly
console.log(jsonObj.Body) /// Was printing Undefined  

ExtJs Ext.decode () দ্বারা সরবরাহিত আলাদা পার্সার ব্যবহার করে সমস্যার সমাধান করেছি;

var jsonObj = Ext.decode(responseText)
console.log(jsonObj.Body) //Worked...

2

আমার ক্ষেত্রে, এটি myMethod(data:MyModelClass) হ'ল এটি হ'ল যদিও আমি কোনও মডেলের বিন্যাসে ডেটা প্রাপ্ত করি যতক্ষণ না প্রাপ্ত প্রাপ্ত বস্তু টাইপ স্ট্রিংয়ের ছিল। কনসোল.লগ (ডেটা) এ কোনটি আমি কনটেন্টটি পেয়েছি। সমাধানটি কেবল জেএসএনকে পার্স করার জন্য (আমার ক্ষেত্রে)

const model:MyMOdelClass=JSON.parse(data);

চিন্তাভাবনা কাজে লাগতে পারে।


2

এমএস এক্সেল দ্বারা উত্পাদিত একটি সিএসভি ফাইল থেকে সিএসভি-পার্সার দ্বারা উত্পাদিত বস্তুর সাথে আমি এই সমস্যার মুখোমুখি হয়েছি। আমি প্রথম সম্পত্তি ব্যতীত সমস্ত বৈশিষ্ট্য অ্যাক্সেস করতে সক্ষম হয়েছি - তবে আমি কনসোল.লগ ব্যবহার করে পুরো অবজেক্টটি লিখলে ঠিক আছে ok

দেখা গেছে যে UTF-8 CSV ফর্ম্যাটটি একটি অদৃশ্য চরিত্রের সাথে সূচনা করে 3 বাইট (ef bb bf) সন্নিবেশ করায় - যা সিএসভি-পার্সার দ্বারা প্রথম সম্পত্তি শিরোনামের অংশ হিসাবে অন্তর্ভুক্ত ছিল। সমাধানটি ছিল ইউটিএফ-বহির্ভূত বিকল্পটি ব্যবহার করে সিএসভি পুনরায় জেনারেট করা এবং এটি অদৃশ্য চরিত্রটিকে নির্মূল করে।


তুমি নায়ক! এই পোস্ট করার জন্য ধন্যবাদ। আমি আমার চুল টেনে বের করছিলাম।
জর্দান এস

ধন্যবাদ আবার এই পোস্ট করার জন্য! আমার রাত বাঁচাল!
অলিভার হিকম্যান

2

আমারও অনুরূপ সমস্যা হয়েছে, আশা করি নিম্নলিখিত সমাধানটি কাউকে সাহায্য করবে
তুমি ব্যবহার করতে পারsetTimeout এখানে কিছু ছেলেদের পরামর্শ হিসাবে ফাংশনটি তবে আপনি কখনই বুঝতে পারবেন না যে আপনার ব্রাউজারটি আপনার অবজেক্টটি সংজ্ঞায়িত করতে কতক্ষণ প্রয়োজন need

এর মধ্যে আমি setIntervalপরিবর্তে ফাংশনটি ব্যবহার করার পরামর্শ দেব । আপনার অবজেক্টটি config.col_id_3সংজ্ঞায়িত না হওয়া পর্যন্ত এটি অপেক্ষা করবে এবং তারপরে আপনার পরবর্তী কোড অংশটি সরিয়ে ফেলবে যার জন্য আপনার নির্দিষ্ট অবজেক্টের বৈশিষ্ট্য প্রয়োজন।

window.addEventListener('load', function(){

    var fileInterval = setInterval(function() {
        if (typeof config.col_id_3 !== 'undefined') {

            // do your stuff here

            clearInterval(fileInterval); // clear interval
        }
    }, 100); // check every 100ms

});

2

আপনি যদি ব্যবহার করছেন TYPESCRIPTএবং / অথবা ANGULAR, এটি হতে পারে!

.then((res: any) => res.json())

আমার জন্য এই সমস্যার কোনও স্থানে প্রতিক্রিয়া টাইপ সেট করা, আমি পুনরায় সেট না করা পর্যন্ত আমি প্রতিক্রিয়াতে সম্পত্তিগুলিতে অ্যাক্সেস করতে পারি না : যে কোনও

এই প্রশ্নটি দেখুন সম্পত্তি '_বাডি' 'প্রতিক্রিয়া' টাইপটিতে নেই


1

আমার একই সমস্যা ছিল এবং উপরের কোনও সমাধান আমার পক্ষে কাজ করে নি এবং এটি পরে অনুমানের কাজ বলে মনে হয়। তবে, আমার কোডটি মোড়ানো যা কোনও setTimeoutফাংশনে অবজেক্ট তৈরি করে তা আমার জন্য কৌশলটি করেছিল।

setTimeout(function() {
   var myObj = xyz; //some code for creation of complex object like above
   console.log(myObj); // this works
   console.log(myObj.propertyName); // this works too
});

1

আমার একই রকম সমস্যা ছিল বা সম্ভবত সম্পর্কিত।

আমার ক্ষেত্রে আমি কোনও জিনিসের বৈশিষ্ট্য অ্যাক্সেস করছি তবে একটি অপরিবর্তিত ছিল। বস্তুর কী, ভল তৈরি করার সময় সার্ভার সাইড কোডে সমস্যাটি একটি শ্বেত-স্থান ছিল of

আমার পন্থাটি নিম্নরূপ ছিল ...

আমার অবজেক্ট তৈরি করা ... "শব্দ" শ্বেত স্থান লক্ষ্য করুন

প্রতিক্রিয়া আমি আমার REST এপিআই থেকে পেয়েছি

মানগুলি লগ করতে জাভাস্ক্রিপ্ট কোড

কনসোল থেকে লগ ফলাফল

সার্ভার-সাইড কোড থেকে হোয়াইট-স্পেস অপসারণ করার পরে অবজেক্টটি তৈরি করা হয়েছে, আমি এখন নীচে হিসাবে সম্পত্তিটি অ্যাক্সেস করতে পারি ...

হোয়াইটস্পেস অপসারণের পরে ফলাফল

বিষয়টির প্রশ্নের সাথে এটি সমস্যা নাও হতে পারে তবে এটি আমার ক্ষেত্রে ছিল এবং অন্য কারও জন্য হতে পারে। আশা করি এটা সাহায্য করবে.


1

মংগুজ ব্যবহার করে মোংগোডিবি থেকে লোড হওয়া একটি নথি নিয়ে আমার ঠিক একই সমস্যা হয়েছে had

প্রমাণিত যে আমি সম্পত্তি ব্যবহার করছি find()মাত্র এক বস্তু ফিরতে, তাই আমি পরিবর্তিত find()করতে findOne()এবং সবকিছু আমার জন্য কাজ করেন।

সমাধান (যদি আপনি মঙ্গুজ ব্যবহার করছেন): কেবলমাত্র একটি অবজেক্ট ফেরত দেওয়ার বিষয়টি নিশ্চিত করুন, যাতে আপনি এটি বিশ্লেষণ করতে পারেন object.idবা এটি অ্যারে হিসাবে বিবেচনা করা হবে যাতে আপনার এটির মতো প্রবেশ করতে হবে object[0].id


1

আমার জন্য এটি একটি মঙ্গুজ সম্পর্কিত সমস্যা হিসাবে প্রমাণিত হয়েছিল।

আমি একটি মোঙ্গো ক্যোয়ারী থেকে যে জিনিসগুলি পেয়েছি সেগুলি লুপিং করছি। আমাকে সরিয়ে ফেলতে হয়েছিল:

items = await Model.find()

এবং এটি দ্বারা প্রতিস্থাপন:

items = await Model.find().lean()

0

আমি এর মতো একটি সমস্যা পেয়েছি এবং সমাধানটি অ্যান্ডস্কোর.জেএস এর সাথে করণীয় হিসাবে পেয়েছি। আমার প্রাথমিক লগিংয়ের কোনও অর্থ হয়নি:

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

> {
>   "code": "foo"
> }

console.log(obj.code);

> undefined

আমি বস্তুর কীগুলি দেখে সমাধানটি পেয়েছি:

console.log(JSON.stringify(Object.keys(obj)));

> ["_wrapped","_chain"]

এটি আমাকে বুঝতে পেরেছিল যে objআসলে কোনও বস্তুর চারপাশে একটি ইন্ডোরস্কোর.জেএস র‌্যাপ ছিল এবং প্রাথমিক ডিবাগিংটি আমার কাছে মিথ্যা ছিল।


0

আমার একইরকম সমস্যা হয়েছিল (চিনির সিআরএম এর জন্য বিকাশ করার সময়), যেখানে আমি শুরু করি:

var leadBean = app.data.createBean('Leads', {id: this.model.attributes.parent_id});

// This should load object with attributes 
leadBean.fetch();

// Here were my attributes filled in with proper values including name
console.log(leadBean);

// Printed "undefined"
console.log(leadBean.attributes.name);

সমস্যা ছিল fetch(), এর অ্যাসিঙ্ক কল তাই আমাকে নিজের কোডটি আবার লিখতে হয়েছিল:

var leadBean = app.data.createBean('Leads', {id: this.model.attributes.parent_id});

// This should load object with attributes 
leadBean.fetch({
    success: function (lead) {
        // Printed my value correctly
        console.log(lead.attributes.name);
    }
});

0

এটি যদি কারও পক্ষে সহায়ক হয় তবে আমারও অনুরূপ সমস্যা হয়েছিল এবং এটি কারণ যে আমি যার সাথে কাজ করছি সেটিতে কেউ টটজসনের জন্য একটি ওভাররাইড তৈরি করেছিল। সুতরাং বিষয়টি কিছু ছিল:

{
  foo: {
         bar: "Hello"
         baz: "World"
       }
}

তবে .TJSON () ছিল:

toJSON() {
  return this.foo
}

সুতরাং আমি যখন JSON.stringify (মায়োবজেক্ট) কল করেছি তখন এটি "bar" বার ":" হ্যালো "," বাজ ":" ওয়ার্ল্ড "}" ফিরে এসেছে। তবে অবজেক্ট.কিজ (মাইবজেক্ট) "ফু" প্রকাশ করেছে।


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

ঠিক 0 টি পয়েন্ট রয়েছে এমন উত্তরের সংখ্যা বিবেচনা করে, আমি মনে করি যে কেউ কেবল সমস্ত কিছু ডাউনভোটিংয়ের মধ্য দিয়ে গেছে।
emote_control

0

আমি আজ একই সমস্যার মুখোমুখি হয়েছি। আমার ক্ষেত্রে কীগুলি নেস্ট করা হয়েছিল, অর্থাৎ কী 1.key2। আমি স্প্লিট () ব্যবহার করে কীগুলি বিভক্ত করেছি এবং তারপরে বর্গাকার বন্ধনী চিহ্নিতকরণ ব্যবহার করেছি, যা আমার পক্ষে কাজ করে।

var data = {
    key1: {
          key2: "some value"
       }
}

আমি কীগুলি বিভক্ত করেছি এবং এটি ব্যবহার করেছি, ডেটা [কী 1] [কী 2] যা আমার জন্য কাজ করেছে।


0

আমার আজ একই সমস্যা ছিল। Uglify-js এর ফলে সমস্যা হয়েছিল। আমি মৃত্যুদন্ড কার্যকর করার পরে একই অ-অ-বিভক্ত কোড সমস্যা সমাধান করা হয়েছিল। অপসারণ করা হচ্ছে

--mangle-props

উগ্লিফাই-জেএস থেকে অগ্লিফাইড কোড থাকার জন্য যথেষ্ট ছিল।

সম্ভবত, সেরা অনুশীলন হ'ল uglify-js এর জন্য রেগেক্স নিয়মের সাথে ম্যাঙ্গেল করতে হবে এমন বৈশিষ্ট্যগুলির জন্য কিছু উপসর্গ ব্যবহার করা।

উত্সটি এখানে:

var data = JSON.parse( content);
...
this.pageIndex = parseInt(data.index);
this.pageTotal = parseInt(data.total);
this.pageLimit = parseInt(data.limit); 

এবং এখানে এটি কীভাবে শৃঙ্খলাবদ্ধ হয়েছিল:

var n = JSON.parse( t);
...
this._ = parseInt(n.index), this.g = parseInt(n.total), this.D = parseInt(n.C)

0

JSON এর কোনটিই স্ট্রিংফাই / পার্স আমার পক্ষে কাজ করেনি।

formValues.myKey:               undefined
formValues.myKey with timeout:  content

আমি এর মানটি চেয়েছিলাম formValues.myKeyএবং কৌতুকটি কী করেছিল তা নীচের উদাহরণের মতো একটি সেটটাইমআউট 0 ছিল। আশা করি এটা সাহায্য করবে.

console.log('formValues.myKey: ',formValues.myKey);
setTimeout( () => { 
  console.log('formValues.myKey with timeout: ', formValues.myKey);
}, 0 );

0

আমি ঠিক এই সমস্যাটিরও মুখোমুখি হয়েছি এবং দীর্ঘ গল্পের সংক্ষিপ্ত বিবরণে আমার এপিআই একটি স্ট্রিং টাইপ ফিরে আসছিল, জেএসওএন নয়। সুতরাং আপনি যখন এটি লগতে মুদ্রণ করেছেন ঠিক ঠিক একইরকম লাগছিল তবে যখনই আমি বৈশিষ্ট্যগুলি অ্যাক্সেস করার চেষ্টা করেছি এটি আমাকে একটি অপরিজ্ঞাত ত্রুটি দিয়েছে।

এপিআই কোড:

     var response = JsonConvert.DeserializeObject<StatusResult>(string Of object);
     return Json(response);

আগে আমি সবেমাত্র ফিরছিলাম:

return Json(string Of object);

0

প্রতিক্রিয়াতে আমার আজ একই ধরণের সমস্যা ছিল। ঘটনাচক্রে বুঝতে পেরেছিল যে রাজ্যটি এখনও সেট না করার কারণে এই সমস্যাটি হচ্ছে। আমি কল দিচ্ছিলাম user.user.nameএবং যদিও এটি কনসোলে প্রদর্শিত হচ্ছে, আমি user.userসেট করা আছে কিনা তা পরীক্ষা করার জন্য চেক অন্তর্ভুক্ত না করে এবং কল করার পরে আমি আমার উপাদানটিতে এটি অ্যাক্সেস করতে পারব না user.user.name

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