ページ 11

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

Posted: 2020年4月13日(月) 02:43
by たきおん
スクリプトについての質問です。
件名の通り、下記のように記述すると“Cannot read property 'id' of undefined”とのエラーが出てしまいます。

コード: 全て選択

for (var i = 1; i <= $dataSkills.length; i++) {
      console.log($dataSkills[i].id);
    };
コンソールを確認したところIDは取得できていたので、undefined(未定義)の意味がわからず途方に暮れております。
どなたか解決法をご存じの方がいらっしゃいましたら、ご教授いただけますと幸いです。

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

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

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

コード: 全て選択

$dataSkills.filter(data => data).map(data => data.id);

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

Posted: 2020年4月13日(月) 11:18
by たきおん
ご教授ありがとうございます。
無事IDを取得することができました。

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

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