質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

364閲覧

配列に、次から次へと値を入力していく方法。

k130

総合スコア22

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

1クリップ

投稿2020/08/08 10:41

編集2020/08/08 11:32

ある文字列
aaaaabbbbbbbbggggggg
を、4つずつ左から分割していって、配列に格納していく方法を考えていますが、
直接配列に格納する方法はないようなのでそれは断念して、
左から4つずつ切り取って、それを配列に入力していこうと思うのですが、
どのように書くのがベストでしょうか?

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/08/08 11:16

「だんねん」ではないでしょうか
m.ts10806

2020/08/08 11:17

あと、自身が書いたコードをひとつも提示せず「ベストな書き方」を求めるのは間違いかと思います。幾つか書き方の案がある前提でないなら単なる丸投げの作業依頼です
guest

回答3

0

ベストアンサー

こんにちは

正規表現を使って、以下はどうでしょう?

javascript

1const result = 'aaaaabbbbbbbbggggggg'.match(/.{1,4}/g);

投稿2020/08/08 11:39

jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k130

2020/08/08 11:48

これは素晴らしい。
jun68ykt

2020/08/08 13:12

お褒めに預かり恐悦至極でございます。
k130

2020/08/09 23:00

ベストアンサーにしました、 ちなみに良ければ、これどういう仕組みなのでしょうか、正規表現をどのように使っているのでしょう。
guest

0

まずは、文字列を最初から3文字取り出す方法を考えましょう

#配列どーこーは考える必要はないです

投稿2020/08/08 10:44

編集2020/08/08 10:45
y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k130

2020/08/08 11:33 編集

配列関係ありませんか? substring+forで切り取っていけますよね? もっとうまい方法がありますか?
y_waiwai

2020/08/08 11:02

切り取っていけるなら、それを配列に格納する方法を考えましょうよ。 まさか、配列に格納する方法がわからないんでしょうか。
kai0310

2020/08/08 11:13

> substring+forで切り取っていけますよね? 自身で試してみては?
guest

0

こんな感じでどうでしょうか?

process.stdin.resume(); process.stdin.setEncoding('utf8'); // Your code here! var eachSlice = (arr, n = 2, result = []) => { if (arr.length === 0) { return result } return eachSlice(arr, n, [...result, arr.splice(0, n)]) } // [...result, arr.splice(0, n)]が分かりにくいなら var eachSlice = (arr, n = 2, result = []) => { if (arr.length === 0) { return result; } result.push(arr.splice(0, n)) return eachSlice(arr, n, result) } const arr = 'aaaaabbbbbbbbggggggg'.split('') console.log(eachSlice([...arr], 3))

出力
[
[ 'a', 'a', 'a' ],
[ 'a', 'a', 'b' ],
[ 'b', 'b', 'b' ],
[ 'b', 'b', 'b' ],
[ 'b', 'g', 'g' ],
[ 'g', 'g', 'g' ],
[ 'g', 'g' ]
]

参考

投稿2020/08/08 10:56

DrqYuto

総合スコア432

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k130

2020/08/08 11:08 編集

はい、3でも良いです。なるほど。 この取り出した3つを更に変換する操作も考えています、そこまで考えると、どうでしょう。 よく考えると配列とか使わなくとも、3間隔ずつ何か挿入すればいいのか。。
DrqYuto

2020/08/11 11:11

なるほどです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問