¿Existe alguna manera de iniciar una matriz si no está ya iniciada? Actualmente el código se ve algo como:Manera elegante de iniciar y extender una matriz de javascript
if (!obj) var obj = [];
obj.push({});
fresco sería algo así como var obj = (obj || []).push({})
, pero eso no funciona :-(
Um ... Esa es una posición extraña para 'var obj' .. después de' if (! obj) ', no tiene mucho sentido, ¿' obj' también se define en un ámbito superior o algo así? – gnarf
JavaScript no inicia un alcance extra dentro de if/else – sod
Lo sé, por lo que me pregunto por qué alguna vez definirías condicionalmente una 'var' así ... supongo que' obj' es probablemente una función parámetro, y la palabra clave 'var' allí es inútil/no deseada ... Si no, no hay forma de que 'obj' pueda definirse antes de esta llamada ... Prueba' obj = {}; (function() {if (! obj) var obj = []; console.log (obj);})(); '- Obtendrá' [] ' – gnarf