Wie erstelle ich ein Array, wenn es noch nicht existiert? Mit anderen Worten, wie wird eine Variable standardmäßig auf ein leeres Array gesetzt?
javascript
Ajsie
quelle
quelle
Array
Konstruktor instanziiert wurde. Dies kann beim Erstellen von Skripten über Frames hinweg auftreten.Array.isArray(x)
: stackoverflow.com/a/38670091/271442if (Array.isArray(array) && array.length)
Weitere Informationenvar arr = arr || [];
quelle
arr
bereits im jeweiligen Geltungsbereich definiert ist, warum dannvar ...
? Sie können einfach tunarr = arr || [];
var
gehisst werden und daher immer einfach werden[]
? Edit: nvm, ich irre mich: Dconst list = Array.isArray(x) ? x : [x];
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
Oder wenn es
x
sich um ein Array handeln könnte und Sie sicherstellen möchten, dass es eines ist:const list = [].concat(x);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
quelle
x is not defined
in beiden Fällenx
ist die Variable, die ein Array sein kann oder nicht. Das definieren Sie. Dies ist nur ein Beispielcode ...Sie können den
typeof
Operator verwenden , um auf undefiniert zu testen, und deninstanceof
Operator , um zu testen, ob es sich um eine Instanz von Array handelt :if (typeof arr == "undefined" || !(arr instanceof Array)) { var arr = []; }
quelle
undefined
es sich nicht um eine Array-Instanz handelt.arr
noch nicht definiert istWenn Sie überprüfen möchten, ob das Objekt bereits ein Array ist , können Sie die folgenden Methoden verwenden , um die bekannten Probleme des
instanceof
Operators bei der Arbeit in DOM-Umgebungen mit mehreren Frames zu vermeidenObject.prototype.toString
:arr = Object.prototype.toString.call(arr) == "[object Array]" ? arr : [];
quelle
arr
nicht deklariert wird, einReferenceError
Wille auf die rechte Seite der Aufgabe geworfen wird ...<script type="text/javascript"> array1 = new Array('apple','mango','banana'); var storearray1 =array1; if (window[storearray1] && window[storearray1] instanceof Array) { alert("exist!"); } else { alert('not find: storearray1 = ' + typeof storearray1) } </script>
quelle
Wenn Sie von einer Browserumgebung sprechen, sind alle globalen Variablen Mitglieder des Fensterobjekts. Also zu überprüfen:
if (window.somearray !== undefined) { somearray = []; }
quelle