Obviamente, este desafío sería trivial con funciones y bibliotecas separadas, por lo que no están permitidas.
Su código debe cumplir con una especificación ECMAscript (cualquier especificación servirá), por lo que no hay respuestas específicas del navegador.
La matriz debe ser accesible después de que se instancia.
Tengo una respuesta que retendré por ahora.
Nota: este desafío es específico de javascript porque es muy inconveniente hacer matrices multidimensionales en javascript.
code-golf
javascript
array-manipulation
Shmiddty
fuente
fuente
[10]
[[10]]
?Respuestas:
Javascript ES6, 30
ES6 en acción :)
fuente
Javascript, 34 bytes
Dado que aparentemente está bien hacer que las filas sean iguales por referencia, creo que aparentemente está bien confiar en ese hecho. Esto nos ayuda a eliminar un bucle for mediante la creación de la tabla al mismo tiempo que sus filas. Entonces, aquí está mi nuevo concursante.
Dado
r[0]
yb[0]
se sobrescriben durante el bucle, que pueden contener basura. Esto nos da otro espacio de ejecución gratuito para eliminar algunas comas. Lamentablemente,r=b=[]
no lo haré, ya que son iguales por ref.Además, se escala bien (99x99 sigue siendo 34 bytes), no requiere ES5 (las nuevas funciones tienen nombres terriblemente largos, de todos modos), y como beneficio adicional, es ilegible :-)
fuente
c=[b=[i=10]];while(i--)b[i]=c,c[i]=1
. Debería haberlo sabido !!!ECMAScript 6 - 33 caracteres
Emite una matriz de 10x10 de "1" s.
Esto abusa del hecho de que la cadena "1111111111" tiene todas las propiedades necesarias para ser tratada como si fuera una matriz, por lo que puede usar el operador de propagación
...
para transformarla en una matriz de caracteres y luego asignarla a una copia de la matriz con cada elemento hace referencia al "original".O con un solo nombre de variable (para 35 caracteres):
O para confusión adicional (pero con 45 caracteres)
o (43 caracteres)
fuente
...
operador!44 bytes
Versión previa:
fuente
^
para!=
45 caracteres
¡Cada elemento apunta a la misma matriz, pero la especificación no menciona nada en contra de eso!
fuente
x=
al principioJavascript, 51
O si todos los índices pueden apuntar a la misma matriz:
Javascript, 41
fuente
a[0][1] = 5; console.log(a[1][1])
)JavaScript,
4544 bytesLo mejor que tengo hasta ahora. (Aún intentando).
Más corto (gracias mellamokb!)
fuente
for
casi siempre es preferiblewhile
al golf. La declaración básica es de la misma longitud (while()
vsfor(;;)
), perofor
le brinda más flexibilidad. En este caso, puede ponerx=[]
el inicializador delfor
y guardar un carácter.Javascript, 47
Como mi solución original ha sido superada, ahora la publicaré.
Desafortunadamente,
0x3FF.toString(2)
no es tan eficiente como simplemente enumerar la cadena, que no es tan eficiente como declarar estáticamente la matriz.Puedes afeitarte un personaje de esta manera ( 46 ):
Puede guardar 2 caracteres más así: ( 44 )
Otra solución de 44 bytes que utiliza cierres de expresión de función JS 1.8 (solo atm FF):
fuente
i
dea
esta manera:a=[i=10]
JavaScript, 57 bytes
Antes de jugar al golf:
Nota: Esto necesita ES5, así que no esperes mucho de IE.
fuente
eval('a=['+(b=Array(11)).join('['+b.join("1,")+'],')+']')
. Aparte de tener diferentes cotizaciones y mi tener la función eval dentro variables, éstos son exactamente los mismosa=eval("["+Array(11).join("[1,1,1,1,1,1,1,1,1,1],")+"]")
ha 5654
Esto ya ha sido superado, pero aquí está mi solución:
fuente
x=
antesx().map
(oy=
, etc.) para que sea accesible, ¿verdad?39 bytes
Uso de la comprensión de matriz en ECMAScript 7:
fuente
[1,1,1,1,1,1,1,1,1,1]
conArray(10).fill(1)
afeitados 4 caracteres.56 caracteres
Respuesta bastante larga, pero será mejor para 100x100, etc.
fuente
Javascript, 36 caracteres (ECMA 6)
Probado en mi navegador (Firefox en Ubuntu) y en el intérprete de Javascript de Codecademy
fuente
ES6, 54
No es el más corto, pero pensé que tendría un enfoque diferente para lo que ya está aquí.
fuente
a
ya existía esa versión parecía haber funcionado. La versión actualizada debería funcionar en FF y nodo con los indicadores --harmony.61 por diversión
fuente
Javascript -
646359 caracteresUn personaje guardado al ocultar el iterador en la matriz.Guarde algunos caracteres con las sugerencias de Jans.
Versión legible:
Sí, no es la solución más corta, sino otro enfoque sin usar
[1,1,1,1,1,1,1,1,1,1]
matrices listas para usar .fuente
i-->0
ai--
. Si bien el operador "downto" es bueno, no es realmente necesario.==0
podría ser afeitado por dos bits también. Además, dejar de ladovar
. Aunque normalmente es útil, cuatro bytes inútiles son simplemente inaceptables aquí.Javascript 69 caracteres (por ahora)
fuente
JavaScript 73
fuente
r=[10],
no hace nada ya que sobrescribe de inmediator[0]
. No necesita declarars
y podría hacerlo,"1111111111".split("")
pero tiene 22 caracteres y[1,1,1,1,1,1,1,1,1,1]
solo 21 caracteres.Javascript ES6, 53
Pero los que están en la matriz son cadenas :)
fuente
Javscript ES6, 53
fuente
JavaScript (ES6), 35 bytes
fuente
f=>Array(10).fill(Array(10).fill(1))
(definiendo una función anónima) para 36 bytes.