配列の入れ子について質問です。

以下のようなスクリプトを書いたのですが、配列がずれてしまい原因がわかりません。
一つポイントがあり配列arr2の値は変動します。
つまり ['1','2','3','4']の時もあれば、 ['4','2','1','3']の時もあります。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<style type="text/css">
.cont {
margin-bottom: 10px;
border: solid 1px #ccc;
}
</style>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.4");</script>
<script type="text/javascript">
//<![CDATA[
$(function() {
var arr1 = ['test1','test2','test3','test4'];
var arr2 = ['4','2','1','3'];//この配列の値は順番が変動する。

for(var i=0; i<arr1.length; i++) {
$(".cont").eq(i).text(arr1[arr2[i]]);
}
});
//]]>
</script>
</head>

<body>

<div class="cont"></div>
<div class="cont"></div>
<div class="cont"></div>
<div class="cont"></div>

</body>
</html>

どなたかご教授頂けたらと思います。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/01/25 02:07:43
  • 終了:2011/01/25 10:46:57

ベストアンサー

id:Cherenkov No.1

Cherenkov回答回数1502ベストアンサー獲得回数4922011/01/25 02:45:59

ポイント35pt

コメント欄を有効にすると有益です。

質問の意味がわかりません。何をどうしたいのか。

javascriptの配列の添字は0からはじまるので-1してやればいいという話でしょうか?

<script type="text/javascript">
//<![CDATA[
$(function() {
  var arr1 = ['test1','test2','test3','test4'];
  var arr2 = ['4','2','1','3'];//この配列の値は順番が変動する。

  for(var i=0; i<arr1.length; i++) {
    $(".cont").eq(i).text(arr1[arr2[i]-1]); //←ここ
  }
});
//]]>
</script>
id:finnapple

ご回答ありがとうございます。

  • 1で目的どおりの動作になりました。

ありがとうございます。

2011/01/25 10:43:59

その他の回答(1件)

id:Cherenkov No.1

Cherenkov回答回数1502ベストアンサー獲得回数4922011/01/25 02:45:59ここでベストアンサー

ポイント35pt

コメント欄を有効にすると有益です。

質問の意味がわかりません。何をどうしたいのか。

javascriptの配列の添字は0からはじまるので-1してやればいいという話でしょうか?

<script type="text/javascript">
//<![CDATA[
$(function() {
  var arr1 = ['test1','test2','test3','test4'];
  var arr2 = ['4','2','1','3'];//この配列の値は順番が変動する。

  for(var i=0; i<arr1.length; i++) {
    $(".cont").eq(i).text(arr1[arr2[i]-1]); //←ここ
  }
});
//]]>
</script>
id:finnapple

ご回答ありがとうございます。

  • 1で目的どおりの動作になりました。

ありがとうございます。

2011/01/25 10:43:59
id:deflation No.2

deflation回答回数1036ベストアンサー獲得回数1262011/01/25 06:41:04

ポイント35pt

arr2が '0' から始まらないのが原因です。

var arr2 = ['3','1','0','2'];

とするか

$(".cont").eq(i).text(arr1[arr2[i] - 1]);

としてみてください。

id:finnapple

> arr2が '0' から始まらないのが原因です。

そうだったんですね。

ご回答ありがとうございます。

2011/01/25 10:46:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません