ゆめみからの挑戦状?
無職やめ太郎(本名)さんが出題しているプチ問題。
今回の問題はこちら。
ヒントと思しき?ツイート
このツイートと一緒にツイート履歴に出てた感じなのでもうこれほぼ答えやん的な気がした
なんか悔しいのでリファレンスもガン見する
Arrayに関する一覧を見たいのでArrayのページを見て使えるメソッドを探す
→やっぱりflatMapなのかなぁ。とりあえず書いてみる
なんか納得できない
const array1 = [1, 2, 3, 4, 5, 6]
const array2 = array1.flatMap(a => a % 2 ? [a, a, a] : [a, a])
console.log(array2)
別にこれで正解な気がする。
でもなんか、こう、もやっとする。
同じ要素しか埋めてないならなんかこう…できないかな?
提出した回答
const array1 = [1, 2, 3, 4, 5, 6]
const array2 = array1.flatMap(a => Array(a % 2 ? 3 : 2).fill(a))
console.log(array2)
fillメソッドを見つけたのでぶちこんでみました。
新しいArrayを要素いくつで作るか、という部分で三項演算子で2か3か設定し、値をその数分ぶっこみflatMap。
これでいけるやろ!って思ってました。当時は。(別にちゃんと動くので正解なんでしょうけどね)
改善点
そうじゃん奇数は3(2 + 1)、偶数は2(2 + 0)の要素なら要素数計算で求められるじゃん…
やるならここまで突き詰めるべきでしたね。詰めが甘かったです…
正解解説&その他の回答
【挑戦状の正解発表&解説】配列の要素を増やすには?〜面白解答も紹介〜
無職やめ太郎さん(本名)さんによる解説記事です。
あとがき
引用RTを見るだけで新しい発見がたくさんありました。
社内では完全に井の中の蛙をしてますので、外部の方のコードを見るのは新鮮でした。企画ありがとうございました!