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

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

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

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

Q&A

解決済

5回答

1124閲覧

javascriptで配列にアクセスする方法は複数存在するか

Kimsehwa

総合スコア312

JavaScript

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

0グッド

0クリップ

投稿2019/08/21 02:01

ふと思った疑問です。

const iniArray = [ { id: "1", x_num: "100", y_num: null, z_num: null }, { id: "2", x_num: null, y_num: "400", z_num: null }, { id: "3", x_num: null, y_num: null, z_num: "300" }, { id: "4", x_num: null, y_num: "200", z_num: null } ];

iniArrayのx番目配列にアクセスするには

iniArray[0]があると思いますが、

javascriptの文法でこの方法以外は存在しないことでよろしいでしょうか。

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

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

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

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

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

maisumakun

2019/08/21 02:30

どのような理由で「別な方法」を求めているのでしょうか。
guest

回答5

0

ベストアンサー

Array.from(iniArray).shift()

投稿2019/08/21 02:08

mikkame

総合スコア5036

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

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

Kimsehwa

2019/08/21 02:20

回答ありがとうございます。これで0番目の配列にアクセスはできましたが、この方法で2番目とかの配列にアクセスする方法はありますか?
mikkame

2019/08/21 02:22

これとyambejpさんのspliceするパターンで組み合わせればできます
退会済みユーザー

退会済みユーザー

2019/08/21 02:25

const first = iniArray.shift() const second = iniArray.shift() const third = iniArray.shift() 元の配列は変更されていきますが。
mikkame

2019/08/21 02:27

変更されないようArray.fromでコピーを作っています。
退会済みユーザー

退会済みユーザー

2019/08/21 02:29

すみません、言葉足らずでした。 「私の提示コードの場合は順番に値が取れます、ただし破壊的です」という意味でした。 mikkameさんの回答へのツッコミの意図はありません。
Kimsehwa

2019/08/21 02:48

Array.from(iniArray).splice(2, 1); このようにすればx番目の指定もできました。ありがとうございます。
mikkame

2019/08/21 03:10

> Array.from(iniArray).splice(2, 1); これだと最終的に配列に入ったままなのでその結果をshiftかpopでさらに取り出してください
guest

0

js

1let first 2let cnt = 0 3for (const item of items) { 4 if (cnt === 0) first = item 5 cnt++ 6} 7console.log(first)

さすがにないか。

投稿2019/08/21 02:19

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

無理をすればこうです

javascript

1console.log(iniArray.slice().splice(0,1));

調整

ご指摘をうけて

javascript

1console.log(...iniArray.slice().splice(0,1));

投稿2019/08/21 02:13

編集2019/08/21 02:43
yambejp

総合スコア114968

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

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

mikkame

2019/08/21 02:21

このパターンだと結局配列に入ってくるので[0]としないとならないのでは?
退会済みユーザー

退会済みユーザー

2019/08/21 02:23

配列で返ってきそうですね。
Kimsehwa

2019/08/21 02:27

回答ありがとうございます。 ちなみにsliceってなんで必要でしょうか? console.log(iniArray.splice(0, 1)); しても同じ結果になりました
退会済みユーザー

退会済みユーザー

2019/08/21 02:31

元の配列に対して非破壊的な操作をしたいからだと思います。
Kimsehwa

2019/08/21 02:42

なるほど、、!!Array.fromかsliceを使えば非破壊的になることですね、
yambejp

2019/08/21 02:44

mikkameさんのおっしゃるとおりでしたので追記しました 結局やってることは姑息なものなのでおすすめはしません
guest

0

javascriptの文法でこの方法以外は存在しないことでよろしいでしょうか。

いえ、破壊的に先頭を取るのであれば、iniArray.shift()としても取ることはできます。

投稿2019/08/21 02:06

編集2019/08/21 02:11
maisumakun

総合スコア145201

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

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

mikkame

2019/08/21 02:09

popは末尾からなのでshiftじゃないですかね? (回答にも書きましたが) コピーしてから取れば非破壊的です
maisumakun

2019/08/21 02:11

そうでしたね、訂正します。
guest

0

C# で使われる Linq を JavaScript で実現するライブラリがあるようです。

JavaScriptで配列をLINQにより処理できるライブラリ「linq.js」を利用するには?
https://www.atmarkit.co.jp/fdotnet/dotnettips/1058linqjsbasic/linqjsbasic.html

興味があれば試してみてはいかがですか?

投稿2019/08/21 02:23

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問