【解決済み】meta undefinedが回避できない

アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

Re: meta undefinedが回避できない

投稿記事by ドラムカン » 2021年6月05日(土) 15:41

奏ねこま様

いつもお世話になります。

いただいたコードで問題を回避することができました!
本当にありがとうございます!
他のプラグインが影響していると思い、新規オブジェクトを作成して試したりしておりましたので
大変、助かりました。

for inは配列で使用してはいけない、という貴重な情報もご提供くださいまして
重ねてお礼申し上げます。
また、この場面でkeyという変数を使用するのは良くないのですね。
毛頭、このような問題点にはたどり着けなかったことと思います。
自身の知識不足が日々、露見されて情けない限りですが、少しずつ積み重ねて理解を深めていけたらと思っております。

奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: meta undefinedが回避できない

投稿記事by 奏ねこま » 2021年6月05日(土) 16:02

WTR さんが書きました:ただいまいち納得がいかないのは
エラーメッセージが cannot read property 'testSkill' of undefined だということ…

意図していない key になっていて list[key] が取得できないなら
cannot read property 'meta' of undefined になりそうな。
意図通りかどうかは別として list[key] までは何らかの形で取得できてるのかなぁ…とさらに謎が。

list[key]が取得できないのではなく、配列の内容以外の要素を取得してしまいます。
例えば

コード: 全て選択

Array.prototye.myFunc = function() {
    ~
}

という独自メソッドをプラグインで追加したとしましょう。
そうするとfor inで「myFunc」というkeyを取得してしまいます。
「list['myFunc'].meta.testSkill」としたら'testSkill' of undefinedです。
アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

Re: 【解決済み】meta undefinedが回避できない

投稿記事by ドラムカン » 2021年6月05日(土) 16:04

名無し蛙 様

いつもお世話になっております。

for inが2021年現在では非推奨となっていること、
等価演算子と厳密等価演算子のご指摘、
同名変数の重複定義のご指摘、
知識不足が原因で引き起こされるトラブルなど、

たくさんの貴重な情報や有難いご指摘、心から感謝申し上げます。

等価演算子と重複定義の件は、おっしゃるとおり
当方の勘違いと横着によるものでした。大変、お手数とご迷惑をおかけいたしました。

知識不足と理解力不足は自身でも痛感しておりまして、
JSの基礎を復習したり、ツクマテのエンジニアの方々からいただいた参考URLなどを拝見しながら
何とか理解に努めておりますものの、「分からないことが出てきて調べてもまたさらに複雑な内容で分からないため、次はどう検索したらよいか分からない」という負のループが続き、JSもツクールJSもよく理解していないまま何となく動くコードを模索しているという残念な状態です。

これとこれを繋げたらこの値が取れる、など単純な組み合わせに頼り、定型化できていない部分には全く対応できないという、悪い例の模範のようなことをしている自覚はあります。

容易に理解できるだけの地頭はありませんが、それでも少しずつ前進している手ごたえを幾ばくか感じております。
気が向きますかぎり、どうか今後ともお力添えのほど、よろしくお願いいたします。
アバター
WTR
記事: 559
登録日時: 2015年12月22日(火) 19:14

Re: 【解決済み】meta undefinedが回避できない

投稿記事by WTR » 2021年6月05日(土) 16:24

奏ねこま さんが書きました:「list['myFunc'].meta.testSkill」としたら'testSkill' of undefinedです

なるほど…
オブジェクト[プロパティ名] で参照できて配列の要素じゃないものが返ってきちゃうのか

もはや関係ないことに感心しててすみません…
関係なくもないか 根本原因だったのかも
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/

“MV:質問” へ戻る