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

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

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

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

パスワード

パスワードは主に情報にアクセスする際に扱われます。主に、アクセス可能なユーザーを限定する手段として使われます。

JavaScript

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

4020閲覧

vue.jsにて配列からランダムに取得したい

leysxxk

総合スコア14

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

パスワード

パスワードは主に情報にアクセスする際に扱われます。主に、アクセス可能なユーザーを限定する手段として使われます。

JavaScript

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/08/24 01:48

vue.js

1export default { 2 mixins: [common], 3 data() { 4 return { 5 characters: [ 6 { name: "Lowercase", value: "abcdefghijklmnopqrstuvwxyz"}, 7 { name: "Uppercase", value: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"}, 8 { name: "Numbers", value: "0123456789"}, 9 ], 10 } 11} 12 methods: { 13 makepassword() { 14 for(var i = 0, len = this.characters[0].value.length; i < len; i++){ 15 var num = Math.floor(Math.random() * len); 16 var a = this.characters[0].value.charAt(num); 17 // console.log(this.characters[0].value.charAt(num)) 18 } 19 for(var i = 0, len = this.characters[1].value.length; i < len; i++){ 20 var num = Math.floor(Math.random() * len); 21 var b = this.characters[1].value.charAt(num); 22 } 23 for(var i = 0, len = this.characters[2].value.length; i < len; i++){ 24 var num = Math.floor(Math.random() * len); 25 var c = this.characters[2].value.charAt(num); 26 } 27 28 for(var i = 0, len = this.characters[0][1][2].value.length; i < len; i++){ 29 var num = Math.floor(Math.random() * len); 30 var d = this.characters[0][1][2].value.charAt(num); 31 console.log(d) 32 } 33 34 var result = a+b+c+d; 35 this.editedItem.password = result 36} 

現在ランダムで8文字の英小文字・英大文字・数字のパスワードをランダムで生成する機能を実装しております。
ロジックとしては1.charactersの"Lowercase""Uppercase""Numbers"の中から一文字ずつランダムで取得
2.残りの5文字は三つの中からランダムで取得 3.集まった8文字をシャッフルする
という手順で実装しようとしています。

問題点

1.の1.charactersの"Lowercase""Uppercase""Numbers"の中から一文字ずつランダムで取得は実装出来たのですが、2.の残り5文字を"Lowercase""Uppercase""Numbers"の中から取得ができない状況です。 
for(var i = 0, len = this.characters[0][1][2].value.length; i < len; i++){
var num = Math.floor(Math.random() * len);
var d = this.characters[0][1][2].value.charAt(num);
console.log(d)
}

配列3つ全てを取得するというコードなのですが、どなたか分かる方いらっしゃいましたらヒントだけでもご教授していただけると嬉しく思います。
ご指摘よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

いったん3種の文字列を全て連結させてみてはいかがでしょうか?

javascript

1//for(var i = 0, len = this.characters[0][1][2].value.length; i < len; i++){ 2// var num = Math.floor(Math.random() * len); 3// var d = this.characters[0][1][2].value.charAt(num); 4// console.log(d) 5//} 6 7const all = this.characters[0].value + this.characters[1].value + this.characters[2].value; 8 9for(var i = 0, len = all.length; i < len; i++){ 10 var num = Math.floor(Math.random() * len); 11 var d = all.charAt(num); 12 console.log(d) 13} 14

投稿2020/08/24 02:01

nekoniki

総合スコア2409

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

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

leysxxk

2020/08/24 02:17

ありがとうございます。コンソールに上手く全て出力されました! ただ、この場合 for(var i = 0, len = all.length; i < len; i++){ var num = Math.floor(Math.random() * len); var d = all.charAt(num); } for(var i = 0, len = all.length; i < len; i++){ var num = Math.floor(Math.random() * len); var e = all.charAt(num); } for(var i = 0, len = all.length; i < len; i++){ var num = Math.floor(Math.random() * len); var f = all.charAt(num); } for(var i = 0, len = all.length; i < len; i++){ var num = Math.floor(Math.random() * len); var g = all.charAt(num); } for(var i = 0, len = all.length; i < len; i++){ var num = Math.floor(Math.random() * len); var h = all.charAt(num); } var result = a+b+c+d+e+f+g+h; this.editedItem.password = result このようにするしか方法はないですよね。 上手くまとめたいのですが、for文の中にfor文を回すという方法で試したのですが、上手くいきませんでした。。
nekoniki

2020/08/24 02:29

allの中から要素を8回抜き出して結合するのなら const len = all.length let result = ''; for(var i = 0; i < 8; i++){ const num = Math.floor(Math.random() * len); const str = all.charAt(num); result += str; } でいいと思います。
leysxxk

2020/08/24 04:03

無事実装完了いたしました、nekonikiさん本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問