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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

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

Q&A

解決済

5回答

11419閲覧

1つしかないObjectのキーや値の取得方法

maisumakun

総合スコア145183

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

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

0グッド

3クリップ

投稿2014/12/09 01:35

JavaScriptを書いていると、JSONなどObjectの値をやりとりすることも多いですが、たまに

lang

1var foo={bar:{/* 中略 */}};

のような、キー1つの連想配列が来て、しかもbarに当たる部分の名前が未確定、という場面があります。このような場合に値を取得するために、

lang

1for(key in foo){ 2 foo_value=foo[key]; 3 break; 4}

と、1つしかないとわかっているのにfor-inを回すことがありますが、もう少しスマートな書き方はないものでしょうか。

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

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

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

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

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

guest

回答5

0

ベストアンサー

C#er的にやるとlinq.jsを入れて

lang

1foo_value = Enumerable.From(foo).First().Value

投稿2014/12/09 02:35

sho_cs

総合スコア3541

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

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

maisumakun

2014/12/10 01:51

LINQというのもなかなか便利そうな書き方ですね、ありがとうございます。
guest

0

確認してないですが、foo[Object.keys(foo)[0]]とかでできますかね…
しかし速度的には質問にあるforを使ったほうが速そうですね。

投稿2014/12/09 02:01

TaMaMhyu

総合スコア1356

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

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

0

いっそJSON文字列を置換して外の殻をなくしてやればいいのでは?

投稿2014/12/09 08:04

jser

総合スコア100

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

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

0

これが良い書き方なのかどうかは分かりませんけれども。

lang

1foo_value = Iterator(foo).next()[1]

投稿2014/12/09 07:01

Lhankor_Mhy

総合スコア36074

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

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

Lhankor_Mhy

2014/12/09 08:01

Chrome も IE も イテレータ対応してないんですね…… すみませんがこの回答はなかったことに……
guest

0

lang

1//思いついて5分、黒魔術的な書き捨てコード 2(function (){ 3 var a={ 4 b : { 5 c : 10 6 } 7 }; 8 9 function getFirstKey(_Object){ 10 //json化した後、文字列置換して最初のキーを取得 11 return JSON.stringify(a).replace(/[{"]/g,"").split(":")[0]; 12 } 13 14 var _firstKey=getFirstKey(a) 15 console.log(a[_firstKey]); 16 17 return ""; 18}());

投稿2014/12/12 05:16

Cf_cwd

総合スコア730

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問