Dumpování objektů stejně jako hodnot. rubrika: Programování: JavaScript
2
Andreaw Fean
položil/-a 22.9.2015
Podívejte se na tento kód:
var arr = ["pes", "kočka", "zvíře"]; console.log(arr, arr.length); // vypíše [], 3 arr.length = 0; console.log(arr, arr.length); // vypíše [], 0
Když použiju console.log(arr, arr.length)
tak mi to vypíše prázdné pole, a jako počet položek 3.
Vysvětluji si to tím, že na ten objekt arr se předává jen reference, a když se vykresluje, tak se mezitím změní, a do vývojářské konzole se vypíše až konečná podoba objektu.
To mi moc nevyhovuje. Nevíte, jak jednoduše vypsat objekt do konzole ve stavu, v jakém je v daném okamžiku?
Děje se mi to svorně ve Firefoxu i v Opeře, takže očekávám, že to bude něco principielnějšího.
EDIT:
Sorry, chová se tak jen Opera. Ale, když udělám zanořené objekty, tak pak to zlobí ve všech třech:
<!DOCTYPE html> <html> <head> <title>TinyMCE - Basic example</title> <script type="text/javascript" src="//code.jquery.com/jquery-2.1.4.js"></script> <script type="text/javascript"> $(function() { var arr = ["pes", "kočka", "zvíře"], obj = {a: "pes", b:"kočka", c:"zvíře", d: arr}; console.log(arr, arr.length); // ["pes", "kočka", "zvíře"], 3 console.log(obj); // {a: "pes", b:"kočka", c:"zvíře", d: []} arr.length = 0; console.log(arr); console.log(obj); }); </script> </head> <body id="tryit"> <form method="post" id="ed"> <textarea name="content">Lorem ipsum doler ist.</textarea> </form> </body>
odkaz
9
Honza Břešťan
odpověděl/-a 22.9.2015
Na zanorene objekty se da pouzit JSON.stringify().
var arr = ["pes", "kočka", "zvíře"], obj = {a: "pes", b:"kočka", c:"zvíře", d: arr}; console.log(obj); // Vystup: // Object { a: "pes", b: "kočka", c: "zvíře", d: Array[3] } console.log(JSON.stringify(obj)); // Vystup: // {"a":"pes","b":"kočka","c":"zvíře","d":["pes","kočka","zvíře"]} console.log(JSON.stringify(obj, null, 4)); // Vystup: // { // "a": "pes", // "b": "kočka", // "c": "zvíře", // "d": [ // "pes", // "kočka", // "zvíře" // ] // }
Pro zobrazení všech 3 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře