Underscore: função de matriz: repetir val x vezes

Criado em 21 nov. 2012  ·  4Comentários  ·  Fonte: jashkenas/underscore

impl sugerido:

_.repeat("0",10)
// => ["0","0",... 10 times]

ou, alternativamente, modifique a função _.range para que:

_.range(0,0,10), instead of outputting [] outputs the above.

Aqui está o caso de uso:

var values = ["A","B","C"];
_.object(values)
// => {"A":undefined,"B":undefined,"C":undefined} // wonderful, as expected

Mas, e se eu quiser inicializar todos os valores nos pares chave / valor com o mesmo valor?
Esta poderia ser outra opção, mas não funciona:

_.object(values,"0") // provide scalar instead of array
// => {"A":undefined,"B":undefined,"C":undefined} // same as before

Isso funcionaria se _repeat existisse:

_.object(values,_.repeat("0",values.length))
// => {"A":"0","B":"0","C":"0"} 
change

Comentários muito úteis

Em vez de outro método, poderíamos apenas modificar _.times para retornar o resultado de cada chamada de callback , como Lo-Dash faz :

var zeros = _.times(10, function() { return 0; });
// => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Todos 4 comentários

+1 para uma função de repetição de matriz. Eu não modificaria _.range por isso, uma vez que é dedicado a intervalos de números.

Em vez de outro método, poderíamos apenas modificar _.times para retornar o resultado de cada chamada de callback , como Lo-Dash faz :

var zeros = _.times(10, function() { return 0; });
// => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

+1 @jdalton.

Parece bom para mim - vá em frente.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

acl0056 picture acl0056  ·  5Comentários

jezen picture jezen  ·  8Comentários

jdalton picture jdalton  ·  6Comentários

sky0014 picture sky0014  ·  8Comentários

githublyp picture githublyp  ·  3Comentários