Underscore: fonction de tableau : répéter val x fois

Créé le 21 nov. 2012  ·  4Commentaires  ·  Source: jashkenas/underscore

impl suggéré :

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

ou bien, modifiez la fonction _.range pour que :

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

Voici le cas d'utilisation :

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

Mais que se passe-t-il si je veux initialiser chaque valeur des paires clé/valeur à la même valeur ?
Cela pourrait être une autre option mais ne fonctionne pas :

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

Cela fonctionnerait si _repeat existait :

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

Commentaire le plus utile

Au lieu d'une autre méthode, nous pourrions simplement modifier _.times pour renvoyer le résultat de chaque appel callback , comme le fait Lo-Dash :

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

Tous les 4 commentaires

+1 pour une fonction de répétition de tableau. Je ne modifierais pas _.range pour cela, car il est dédié aux plages de numéros.

Au lieu d'une autre méthode, nous pourrions simplement modifier _.times pour renvoyer le résultat de chaque appel callback , comme le fait Lo-Dash :

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

+1 @jdalton.

Cela me semble bien - allez-y.

Cette page vous a été utile?
0 / 5 - 0 notes