Crear rangos 0...(N-1) facilmente usando una linea
A continuación mostraremos como crear el rango 0…N-1).
Array.apply(null, {length: N}).map(Number.call, Number);
Vamos a descomponer esta línea en partes. Sabemos como la funcion call ()
trabaja en javascript. Así que en call ()
el primer argumento será contexto y los segundos argumentos, será una lista de argumentos de la función en la que estamos llamando call()
.
function add(a, b){
return (a+b);
}
add.call(null, 5, 6);
Esto devolverá una suma de 5 y 6.
map()
del array en javascript toma dos argumentos, el primero callback
y el segundo thisArg(context)
. callback
está tomando tres argumentos, value
, index
y todo el array
sobre el que estamos iterando. Así es la sintaxis común:
[1, 2, 3].map(function(value, index, arr){
//Code
}, this);
Debajo de la línea crea array de longitud dada.
Array.apply(null, {length: N})
Poner todas las partes juntas a continuación es la solución.
Array.apply(null, {length: N}).map(Number.call, Number);
Si tiene un rango 1…N, que sera como este.
Array.apply(null, {length: N}).map(function(value, index){
return index+1;
});
Use the 100 answers in this short book to boost your confidence and skills to ace the interviews at your favorite companies like Twitter, Google and Netflix.
GET THE BOOK NOWA short book with 100 answers designed to boost your knowledge and help you ace the technical interview within a few days.
GET THE BOOK NOW