Underscore: ๋ฐฐ์—ด ํ•จ์ˆ˜: val x ๋ฒˆ ๋ฐ˜๋ณต

์— ๋งŒ๋“  2012๋…„ 11์›” 21์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: jashkenas/underscore

์ œ์•ˆ๋œ ์•”์‹œ:

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

๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด _.range ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

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

์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿฌ๋‚˜ ํ‚ค/๊ฐ’ ์Œ์˜ ๋ชจ๋“  ๊ฐ’์„ ๋™์ผํ•œ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
์ด๊ฒƒ์€ ๋‹ค๋ฅธ ์˜ต์…˜์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

_repeat๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ๋Œ€์‹ ์— Lo-Dash๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ _.times ๋ฅผ ์ˆ˜์ • ํ•˜์—ฌ ๊ฐ callback ํ˜ธ์ถœ ์˜ ๊ฒฐ๊ณผ ๋ฅผ

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

๋ชจ๋“  4 ๋Œ“๊ธ€

๋ฐฐ์—ด ๋ฐ˜๋ณต ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ +1์ž…๋‹ˆ๋‹ค. ์ˆซ์ž ๋ฒ”์œ„ ์ „์šฉ์ด๋ฏ€๋กœ _.range ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ๋Œ€์‹ ์— Lo-Dash๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ _.times ๋ฅผ ์ˆ˜์ • ํ•˜์—ฌ ๊ฐ callback ํ˜ธ์ถœ ์˜ ๊ฒฐ๊ณผ ๋ฅผ

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

+1 @jdalton.

๋‚˜์—๊ฒŒ ์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰