匿名質問者

Javascriptの連想配列



var array ={"a":["A","B","C","D","E","F"]};
console.log(array["a"]);
//結果:["A","B","C","D","E","F"]

この配列の値を取得するためにindex(全体の何個目の要素であるかの順番)を使ってarrayの0番目の値を取得するということはできないのでしょうか?
例えばconsole.log(array[0]);→["A","B","C","D","E","F"]みたいな感じです


keyの値で取得するのではなくindexの値で取得したいのですがこういうことは不可能なのでしょうか?

面倒とは思いますがよろしくお願いします

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/01/27 00:02:31

ベストアンサー

匿名回答1号 No.1

function getMemberByIdx(obj, idx) {
	var currentIdx = 0;
	for (var key in obj) {
		if (currentIdx == idx) return obj[key];
		currentIdx++;
	}
}

array ={"a":["A","B","C","D","E","F"], "b":"member_b"};
console.log(getMemberByIdx(array, 0));
console.log(getMemberByIdx(array, 1));
匿名質問者

ありがとうございます!

2013/01/25 17:08:11

その他の回答1件)

匿名回答1号 No.1

ここでベストアンサー

function getMemberByIdx(obj, idx) {
	var currentIdx = 0;
	for (var key in obj) {
		if (currentIdx == idx) return obj[key];
		currentIdx++;
	}
}

array ={"a":["A","B","C","D","E","F"], "b":"member_b"};
console.log(getMemberByIdx(array, 0));
console.log(getMemberByIdx(array, 1));
匿名質問者

ありがとうございます!

2013/01/25 17:08:11
匿名回答2号 No.2

function getMemberByIdx(obj, idx) {
    return obj[Object.keys(obj)[idx]];
}
 
array ={"a":["A","B","C","D","E","F"], "b":"member_b"};
document.write(getMemberByIdx(array, 0));
document.write("<br>");
document.write(getMemberByIdx(array, 1));
document.write("<br>");

http://jsfiddle.net/xSk2Z/

ブラウザ依存があるかも知れませんが。

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

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

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

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

回答リクエストを送信したユーザーはいません