Objectに文字列をつなげる方法が分かりません

累積比率パレートマン
記事: 33
登録日時: 2022年1月12日(水) 01:12

Objectに文字列をつなげる方法が分かりません

投稿記事by 累積比率パレートマン » 2023年9月28日(木) 23:16

エンジニアの皆様

お疲れ様です。

今回も、jsのご質問になります。

トリアコンタンさんの、「カスタムメニュー作成プラグイン」で

装備品を表示する関数を作成しているのですが、

Objectと文字列を繋げようとしても、どうにもうまくいきません。

「E エクスカリバー」というふうに表示したいのに
「E [object Object]」となってしまいます。

コード: 全て選択

  for(var s = 0; s < $gameActors.actor(1).equips().length; s++){
    var equip = $gameActors.actor(1).equips()[s];
    if (equip != null) {
        arr.push('E' + equip);
    }
  }


以前にツクマテで教えていただいた、ブラケット記法なるものを利用してつなげてもうまくいきません。

コード: 全て選択

  for(var s = 0; s < $gameActors.actor(1).equips().length; s++){
    if ($gameActors.actor(1).equips()[s] != null) {
        var equipObject = $gameActors.actor(1).equips()[s];
        equipObject['name'] = 'E' + equipObject['name']; // ブラケット記法を使用して連結
        arr.push(equipObject);
    }
}


jsにお詳しい方、教えていただけますと幸いです。

何卒、よろしくお願いいたします。

名無し蛙
記事: 310
登録日時: 2015年11月23日(月) 02:46

Re: Objectに文字列をつなげる方法が分かりません

投稿記事by 名無し蛙 » 2023年9月29日(金) 00:09

やりたい事がイマイチよく分からないんですけどこんな感じですか

コード: 全て選択

const names = $gameActors.actor(1).equips()
    .filter(e => e)
    .map(e => `E ${e.name}`);
console.log(names);
累積比率パレートマン
記事: 33
登録日時: 2022年1月12日(水) 01:12

Re: Objectに文字列をつなげる方法が分かりません

投稿記事by 累積比率パレートマン » 2023年9月29日(金) 00:40

名無し蛙 様

早速ご回答いただき、ありがとうございます!

その記述ですと、文字列+装備名となってしまうため、オブジェクトとして認識してくれないようです。

そのため、装備品のヘルプやアイコンが表示されず、ただの文字列のつながりになっておりました。

やはりオブジェクトと文字列を繋げて、それを装備品のオブジェクトとして使うのは無理なのかもしれません。

本当にありがとうございました。

別の方法を考えてみます。
アバター
剣崎 宗二
記事: 686
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: Objectに文字列をつなげる方法が分かりません

投稿記事by 剣崎 宗二 » 2023年10月03日(火) 18:01

状況が不明瞭(そもそもそのコードを「どこに」組み込んだのかが不明)なので一部エスパーを含みますが…

先ず大前提として、ObjectとStringを合成する事は物理的に不可能です。
100/abc = ? を解こうとしてる様な物です。回答は出ません。

そして、やっている事を踏まえると、装備画面で、装備しているアイテムの名前にEをつけようとしている状況でしょうか。
その場合、恐らく処理している「場所」が違います。アイテムリストを構築している所で行わず、
Window_EquipSlot.prototype.drawItem
Window_EquipItem.prototype.drawItem
などにて実描画時に行うべきですね。
(やり方は大まかには名無し蛙さんの提示した通りです。描画時点でアイテムの名前を取得し、その前にEをつける形です)
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。

“MZ:質問” へ戻る