ich ein einfaches Programm wie:Javascript überprüfen, ob Wörterbuch
Hier Wert von a
ist Wörterbuch. Ich möchte nachsehen.
Wie kann ich Javascript einchecken? Meine beiden Test gibt mir über abgehängten Wert
Ich bin neu in Javascript
ich ein einfaches Programm wie:Javascript überprüfen, ob Wörterbuch
Hier Wert von a
ist Wörterbuch. Ich möchte nachsehen.
Wie kann ich Javascript einchecken? Meine beiden Test gibt mir über abgehängten Wert
Ich bin neu in Javascript
Die Struktur {'a': 1, 'b': 2}
ist ein Objekt Javascript. Es kann wie ein Wörterbuch verwendet werden, aber Javascript hat keinen Wörterbuchtyp.
console.log(typeof a); // "object"
console.log(Array.isArray(a)); // false, because it's not an array
Wenn Sie wissen wollen, ob etwas ein Array ist, dann verwenden:
Array.isArray(a)
Wenn Sie wissen wollen, ob etwas ein Objekt ist, dann verwenden:
typeof a === "object"
Aber Sie müssen vorsichtig sein, weil ein Array auch ein Objekt ist.
Wenn Sie wissen wollen, ob etwas ein einfaches Objekt ist, können Sie sehen, was jQuery hat ein einfaches Objekt zu erkennen:
isPlainObject: function(obj) {
// Not plain objects:
// - Any object or value whose internal [[Class]] property is not "[object Object]"
// - DOM nodes
// - window
if (jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow(obj)) {
return false;
}
// Support: Firefox <20
// The try/catch suppresses exceptions thrown when attempting to access
// the "constructor" property of certain host objects, ie. |window.location|
// https://bugzilla.mozilla.org/show_bug.cgi?id=814622
try {
if (obj.constructor &&
!hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) {
return false;
}
} catch (e) {
return false;
}
// If the function hasn't returned already, we're confident that
// |obj| is a plain object, created by {} or constructed with new Object
return true;
},
function isDict(v) {
typeof v==='object' && v!==null && !(v instanceof Array) && !(v instanceof Date);
}
Um strenger zu sein Sie JSON verwenden können . Aber es ist nicht eine Leistung & speichereffiziente Lösung:
function isJsonable(v) {
try{
return JSON.stringify(v) === JSON.stringify(JSON.parse(JSON.stringify(v)));
} catch(e){
/*console.error("not a dict",e);*/
return false;
}
}
So kann die Antwort sein: (beachten Sie, dass es sich um eine ineffiziente Methode und wird empfohlen für den Test nur purposed)
function isDict(v) {
return !!v && typeof v==='object' && v!==null && !(v instanceof Array) && !(v instanceof Date) && isJsonable(v);
}
Javascript muss nicht Wörterbuch . Es hat ein Objekt. Object und Array haben beide einen Objekttyp, wenn Sie also zwischen ihnen unterscheiden möchten, können Sie 'Array.isArray' versuchen. Dies gibt True für Array und False für Objekte zurück – Rajesh
Stack Overflow ist keine Lernprogrammseite. – gcampbell