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

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

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

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

Q&A

解決済

4回答

327閲覧

js 配列で特定の要素の一つ前をとって、配列で返す

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2019/03/27 08:34

編集2019/03/27 08:53

前提・実現したいこと

javascriptで

このような配列があります。

["Aさん", "123456", "Bさん", "123", "Cさん", "123456"]

この配列でindexが偶数である要素の値が、/[0-9]{6}/ であるなら、 その一つ前の要素を 取得し
新しい配列を生成する方法はありますでしょうか?

イメージとしてはこのような形です。

["Aさん", "Cさん"]

ご教示お願い致します。

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

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

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

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

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

Lhankor_Mhy

2019/03/27 08:46

"123456" は文字列であり、parseInt("123456") の結果は NaN です。 「偶数の要素が6桁」の詳細な要件をお願いします。 たとえば、"千二百八十二" は「偶数の要素が6桁」ですか? "XXVIII" はどうでしょうか?
退会済みユーザー

退会済みユーザー

2019/03/27 08:51

すいません /[0-9]{6}/です 偶数の要素とは添字が偶数である要素です
papinianus

2019/03/27 08:54

添字は奇数ではないですか?偶数番目の要素が6桁でしょう?
coco_bauer

2019/03/27 09:22

「偶数の要素が6桁 であるなら、 その一つ前の要素を 取得」というルールがよく理解できません。偶数の要素というのは、"配列の2番目、4番目、6番目など偶数番目の要素"("123456"と"123"と"123456")という意味ですか? "6桁”というのは数字(の文字)が6つ並んでいればOKなのですか("012345"は6桁ですか?) そして"その一つ前の要素を 取得"は何をすることを意味していますか? ["Aさん", "123456", "Cさん", "123456"]が生成されるのだとしたら"配列に含まれる6個の数字から成る文字列の要素と、その一つ前の要素から成る配列を生成する"というような説明になりそうな気はしますが確信できません。
guest

回答4

0

JavaScript

1var ar = ["Aさん", "123456", "Bさん", "123", "Cさん", "123456"]; 2var result = ar.filter(function(v, i, a) { 3 return i % 2 === 0 && a[i + 1].length === 6; 4});

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

投稿2019/03/27 09:00

x_x

総合スコア13749

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

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

0

ベストアンサー

javascript

1console.log(["Aさん", "123456", "Bさん", "123", "Cさん", "123456"].reduce((ac, c, i, ar) => i % 2 && c.length === 6? ac.concat(ar[i-1]) : ac,[])); 2 3console.log(["Aさん", "123456", "Bさん", "123", "Cさん", "123456"].reduce((ac, c, i, ar) => i % 2 && /^[0-9]{6}$/.test(c)? ac.concat(ar[i-1]) : ac,[]));

もとの質問全角数字だから、その正規表現だとマッチするのないです

投稿2019/03/27 08:50

編集2019/03/27 08:59
papinianus

総合スコア12705

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

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

0

1行で解決できるような質問は、して欲しくないかな。
(本日も最短!)

javascript

1const a = ["Aさん", "123456", "Bさん", "123", "Cさん", "123456"]; 2console.log(a.reduce((b,c,d)=>c.length==6?[...b,a[d-1]]:b,[]));

投稿2019/03/27 09:14

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

js

1const array = ["Aさん", "123456", "Bさん", "123", "Cさん", "123456"]; 2const newArray = array.filter((obj, idx, array) => (idx % 2 === 0) && (array[idx+1]) && (array[idx+1].length === 6));

投稿2019/03/27 08:59

macaron_xxx

総合スコア3191

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問