LoginSignup

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

連想配列のキー名が""でくくられている場合に値を取得できない

Q&AClosed

解決したいこと

連想配列のキー名が""でくくられている場合に値を取得できません。
phpで取得した、データのキー名が""なしの配列の場合は取得できます。

phpで取得した""なしのキー名の配列

Screen Shot 2021-09-14 at 16.24.48.png

連想配列を作成した""ありのキー名の配列

Screen Shot 2021-09-14 at 16.26.16.png

キー名に""がついてしまう連想配列を作成するソースコード

//多次元の連想配列
  let ary = [];
  let i = 0;
  $(".wrapper-display_select").each(function () {
    let obj = {};
    //compare時はすべてのwrapper-display_selectがアクティブになるので、trで判定する
    if ($(this).find("td").hasClass("actv")) {
      $(this)
        .find("td.actv")
        .each(function () {
          obj[this.className.replace("actv", "")] = this.innerHTML;
        });
      ary[i] = obj;
      i++;
    }
  });
  return ary;

連想配列より値を取得するソースコード

/**
 * サイズ情報をテーブルにセットする関数
 * @param {object} target サイズ情報を入力するテーブルの全行(全項目)
 * @param {json} value PHPより取得した情報
 */
export function setDataToSize(target, value) {
  console.log(value);
  //列 サイズの種類分
  for (let i = 0; i < value.length; i++) {
    //行 作成済みの項目数分
    target.each(function () {
      let td = this.insertCell(-1); //テーブル行に新規セルを挿入し、セルへの参照を返す
      $(td)
        .addClass(this.className)
        .attr("data-no", "c" + (i + 1));
      $(td).on("click", execSelectSize); // どのセルをクリックしても反応するように、すべてのセルにクリックイベント設定
      let data = value[i][this.className];

      //情報がなく算出した値 小数点を切り捨て
      if (Number.isFinite(data)) {
        td.textContent = Number(data.toFixed(1));

        //ジオメトリ情報の参照元URL アンカータグを設定
      } else if (this.className === "md_src") {
        $("<a>", {
          href: data,
          target: "_blank",
          rel: "noopener noreferrer",
          text: "source",
        }).appendTo(td);

        //セレクトマーク セレクト状態の画像を設定
      } else if (this.className === "dsc_slct") {
        $("<img>", {
          src: IMG_PATH_SLCT["unselected"],
          text: data,
        }).appendTo(td);

        //参照元より参照できた数値データ
      } else {
        td.textContent = data;
      }
    });
  }
}

0

2Answer

Comments

  1. @udagawah1015

    Questioner
    ご指摘の通り、半角スペースが入っていたのが原因でした。
    初歩的なミスに気づかず恥ずかしい限りです。
    ありがとうございます。

Comments

  1. @udagawah1015

    Questioner
    すいません。例えが悪かったようです。
    質問に実際のコードと検証画面を貼り付けてみました。
    検証やデバッグで確認すると、キー名に""のある場合とない場合で表示されます。

Your answer might help someone💌