Wie soll ich feststellen, ob das Argument ein Array ist, weil typeof []
zurückgegeben wird 'object'
und ich zwischen Arrays und Objekten unterscheiden möchte?
Es ist möglich, dass das Objekt so aussieht, {"0":"string","1":"string","length":"2"}
aber ich möchte nicht, dass es als Array angezeigt wird, wenn es tatsächlich ein Objekt ist, das wie ein Array aussieht.
JSON.parse
und JSON.stringify
sind in der Lage, diese Unterscheidung zu treffen. Wie kann ich es tun?
Ich verwende Node.JS, das auf V8 basiert, genauso wie Chrome.
util
Bibliothek node.js -require('util').isArray(arr)
nodejs.org/api/util.html#util_util_isarray_objectarr instanceof Array
fehlschlägt. DasArray.isArray()
funktioniert aber super.Versuchen Sie diesen Code:
quelle
Wie wäre es mit:
In V8 in Chrome bekomme ich
quelle
Ich sehe so aus, als hätte diese Frage mehrere gute Antworten, aber der Vollständigkeit halber würde ich eine weitere Option hinzufügen, die zuvor nicht vorgeschlagen wurde.
Um zu überprüfen, ob es sich bei einem Array um ein Array handelt, können Sie das
util
native Modul von Node.j und seineisArray()
Funktion verwenden.Beispiel:
Mit dieser Methode müssen Sie sich keine Gedanken über die von V8 implementierten JS-Standards machen, da immer die richtige Antwort angezeigt wird.
quelle
util.isArray()
derzeit Proxies anArray.isArray()
: github.com/joyent/node/blob/…Versuchen Sie
Folgendes : console.log (Object.prototype.toString.call (arg) .replace (/ ^ [object (. +)] $ /, '$ 1'). ToLowerCase ())
quelle