[解決済]スキルIDを取得しようとするとエラーが出てしまいます

返信する
たきおん
記事: 2
登録日時: 2020年4月13日(月) 02:18

[解決済]スキルIDを取得しようとするとエラーが出てしまいます

投稿記事 by たきおん »

スクリプトについての質問です。
件名の通り、下記のように記述すると“Cannot read property 'id' of undefined”とのエラーが出てしまいます。

コード: 全て選択

for (var i = 1; i <= $dataSkills.length; i++) {
      console.log($dataSkills[i].id);
    };
コンソールを確認したところIDは取得できていたので、undefined(未定義)の意味がわからず途方に暮れております。
どなたか解決法をご存じの方がいらっしゃいましたら、ご教授いただけますと幸いです。
最後に編集したユーザー たきおん [ 2020年4月13日(月) 11:18 ], 累計 1 回
アバター
Plasma Dark
記事: 736
登録日時: 2020年2月08日(土) 02:29
連絡する:

Re: スキルIDを取得しようとするとエラーが出てしまいます

投稿記事 by Plasma Dark »

コンソールを確認したところIDは取得できていたので、undefined(未定義)の意味がわからず途方に暮れております。
配列の範囲外を取得しようとしています。
$dataSkills[$dataSkills.length] は未定義ですので、その.idを取得しようとすればエラーになるのは自然です。

どういうことをやりたいか次第ですが、全スキルのIDを取得したいなら以下のように.mapを利用されてみてはいかがでしょうか。

コード: 全て選択

$dataSkills.filter(data => data).map(data => data.id);
たきおん
記事: 2
登録日時: 2020年4月13日(月) 02:18

Re: スキルIDを取得しようとするとエラーが出てしまいます

投稿記事 by たきおん »

ご教授ありがとうございます。
無事IDを取得することができました。

$dataSkills.lengthの方に原因があるとは気づきませんでした。
まだまだ勉強不足ですね。

ご丁寧に回答いただき、大変感謝いたします。
返信する

“MV:質問”に戻る