dポイントプレゼントキャンペーン実施中!

Javascriptで文字列を順番に表示し、そのスタート地点を任意にしたいのです。

http://oshiete.goo.ne.jp/qa/2200463.html

こちらのページを参考に、アクセス毎に順番に表示をするページを作成しております。
このリストの、スタート地点をランダムにする改変はできますでしょうか。

本来の目的は、複数設定した文字列をランダムに、しかし一周して全ての文字列を表示し終わるまでは重複しないものを求めていたのですが、検索が下手なのか、探し当てることができませんでした。

そこで、順番に表示されるもののスタート地点をランダムにすることはできないものかと思ったのですが……

どちらでも結構ですので、有識者様、何とぞ宜しくお願いいたします。

A 回答 (3件)

#2のかたと考え方は同じです。



元のページの
─────────────────
var imgNo = 0;
//以下、画像のリスト
var imgList = new Array;
imgList[0] = '~/imgA.gif';
imgList[1] = '~/imgB.png';
imgList[2] = '~/imgX.jpg';
─────────────────

─────────────────
//以下、画像のリスト
var imgList = new Array;
imgList[0] = '~/imgA.gif';
imgList[1] = '~/imgB.png';
imgList[2] = '~/imgX.jpg';
var imgNo = Math.round(Math.random()*(imgList.length));
─────────────────

に変えれば動きませんか?
参考:http://tokyo.cool.ne.jp/mitchy2/area2/js/js_memo …


尚、JavaScriptはHTML/CSSと違い、(軽量とは言え)プログラミング言語ですから、
確かに敷居は高いです。
ですので、はじめはコピペで良いと思います。

けれども慣れてきたら、少しずつソースの意味を理解できるよう読み込んでみてください。
はじめのうちは大変ですが、いずれすいすい上達できるようになりますよ。
がんばってください!
    • good
    • 0
この回答へのお礼

サンプルのご提示、大変恐縮です。とっても嬉しいですが、
stuff_ppo様にお手間をおかけしまして心苦しいです。申し訳ありません。
ありがとうございます。

改変して頂いたものを見ると、ここ二日間わたしが最初っから見当違いな事を
しておりました事がわかります。
仰る通り、基本や使い方すら分らない癖に、改変の仕方を教えて下さいというのは
無知でありました。
htmlもcssも我流で学んだのだし、と力ずくで手を出したのが無謀だったです。

お礼日時:2011/03/23 11:01

>Javascriptで文字列を順番に表示し、~


というのが、ある文字列から1文字ずつ表示していく時のスタート位置の意味なのか、複数ある文字列を順番に表示する時のスタート位置なのかよくわかりませんが、いずれにしろ全体の数に対して乱数で決めてあげれば良いだけのように思われます。

0~1(1未満)の乱数が Math.random() で得られますので…

一つの文字列の場合(=変数strとして)、文字数はstr.lengthですから Math.floor(Math.random() * str.length) で計算した文字をスタートにすればよろしいかと。
複数の文字列が配列に入っているのなら(=配列array_strとして)、同様に Math.floor(Math.random() * array_str.length)でインデックス値を求めて、そこからスタートすることにすればよろしいかと。(終わりの判定にちょっと工夫がいるかも)

他にも、配列全体を並べ変えしてしまう(ランダムソート)という方法も考えられます。
(この場合は順序も変わってしまいますが…)
    • good
    • 0
この回答へのお礼

ご指南ありがとうございます。先日頂きましたSAYKA様のご助言を元にぐぐりつつ改造を行っておりますが、あまり芳しくなく……
fujillin様に頂きましたご助言と合せてもうちょっとがんばってみます!

お礼日時:2011/03/22 10:39

とりあえずランダムの文字列を作るか、ランダム種を一定にしてかき回す(種が同じなら同じ乱数が出るのを利用した手抜きランダム文字列生成)



で その文字列の文字数を基に、カウンタの数を文字数で割った「余り」の数値の位置の文字を文字列から取り出す


と 文で説明すると そんな感じ。
文字列自体が「単語」で複数用意してあるなら文字数ではなくて語数になるだけ。

前者なら文字列の検索系、後者なら配列の操作。
剰余は % ・・・かな。modだったらごめん
    • good
    • 0
この回答へのお礼

いち早いお返事をありがとうございました。
折角ご指南賜っておきましてお恥ずかしい話なのですが、
わたくしにとってはお話高度過ぎてすぐの理解ができません……

お礼日時:2011/03/21 11:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!