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

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

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

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

Q&A

解決済

5回答

671閲覧

JavaScript pushで追加した配列にアクセス

smokey

総合スコア1

JavaScript

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

0グッド

0クリップ

投稿2021/06/09 12:33

前提・実現したいこと

pushで追加した配列に配列名でアクセスして中身を取り出したいです
x[0]とかではなく、名前で取り出したいんですがどうしたらいいんでしょうか?

該当のソースコード

<script> var x=[]; window.onload=function(){ x.push({one: 1, two: 2, three: 3}); console.log(x["one"]);//1と表示させたい } </script>

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

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

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

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

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

guest

回答5

0

x は配列なので、x[0] で最初に push したオブジェクトにアクセスできます。

js

1console.log(x[0].one);

でどうでしょうか。

投稿2021/06/09 12:38

yh1224

総合スコア653

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

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

smokey

2021/06/09 12:51

添え字番号関係なく名前で取り出す方法はご存知ないでしょうか?
yh1224

2021/06/09 12:52

配列の中から条件にあうオブジェクトを検索する必要があります。 検索条件は何になりますか?
smokey

2021/06/09 13:03

検索条件は↓で例えたら、キー名っていうんでしょうか、 oneとかtwoの部分です <script> var x=[]; window.onload=function(){ x.push({one: 1, two: 2, three: 3}); x.push({a: 1, b: 2, c: 3}); console.log(x[1]["a"]); } </script>
yh1224

2021/06/09 13:06

別途回答しました。
guest

0

ベストアンサー

pushで追加した配列に配列名でアクセス

配列は複数の値を順番に持つだけですので、「配列名」というものはありません。
やりたいことは「複数の値を、名前をつけて保持したい。」でしょうか?

それであれば配列でなくオブジェクトを使います。

js

1var x = {}; 2Object.assign(x, {one: 1, two: 2, three: 3}); 3console.log(x["one"]);

という形でどうでしょうか。

投稿2021/06/09 13:04

yh1224

総合スコア653

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

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

smokey

2021/06/09 13:07

こうしたらエラーがでたんですが、bにアクセスできないのはなぜですか? <script> var x = {}; window.onload=function(){ Object.assign(x, {one: 1, two: 2, three: 3}); Object.assign(x, {a: a, b: b, c: c}); console.log(x["b"]); } </script>
smokey

2021/06/09 13:09

文字列だから""が必要でした。 やりたかったことです ありがとうございます
guest

0

xから直接キーで取り出したいなら、xを配列ではなくてディクショナリとしてください。

var x = {one: 1, two: 2, three: 3} console.log(x["one"]);

今の状態だとディクショナリの配列になっているので

console.log(x[0]["one"]);

として配列の最初の要素を洗濯した後にキー(名前)で取り出す必要があります。

投稿2021/06/09 12:39

fukatani

総合スコア626

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

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

smokey

2021/06/09 12:48

var x = {one: 1, two: 2, three: 3} console.log(x["one"]); この記述でpushで動的にデータ入れるにはどうしたらいいんでしょうか?
guest

0

xは配列なので、まずは添字を指定する必要があります。

console.log(x[0]["one"]);

添字が分からなければまたコメントで質問してください。

投稿2021/06/09 12:39

nabenabe11234

総合スコア126

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

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

smokey

2021/06/09 12:50

<script> var x=[]; window.onload=function(){ x.push({one: 1, two: 2, three: 3}); x.push({a: 1, b: 2, c: 3}); console.log(x[1]["a"]); } </script> と合った場合に、いくつめの添え字にaがあるかを割り出す方法はありませんか 他にスマートなやり方あったら教えてほしいです
guest

0

解決してますが…
当初のコーディングでどうしてもインデックスを使いたくないなら

javascript

1let x = []; 2x.push({one: 1, two: 2, three: 3}); 3 4const [y] = x; 5 6console.log(y["one"]);

かなり強引な方法ですけどね。(汗

投稿2021/06/09 20:29

takasima20

総合スコア7460

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問