この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
176. undefined を null に

以下はJavaScriptにおける解答例です。

function undefinedToNull(obj) {
  // obj が配列の場合
  if (Array.isArray(obj)) {
    return obj.map((item) => {
      if (item === undefined) {
        return null;
      }
      if (typeof item === "object" && item !== null) {
        // 再帰的に呼び出し
        return undefinedToNull(item);
      }
      return item;
    });
  }
  // obj がオブジェクトの場合
  return Object.keys(obj).reduce((result, key) => {
    const value = obj[key];
    if (value === undefined) {
      result[key] = null;
    } else if (typeof value === "object" && value !== null) {
      // 再帰的に呼び出し
      result[key] = undefinedToNull(value);
    } else {
      result[key] = value;
    }
    return result;
  }, {});
}

この解答例では、以下のような点に注意しています。

  • 引数が配列の場合とオブジェクトの場合を分岐して処理しています。
  • 引数がオブジェクトの場合、Object.keys()でオブジェクトのキーを取り出し、reduce()で新しいオブジェクトを生成しています。
  • オブジェクト内の値が再帰的に呼び出されることがあるため、typeof演算子によってオブジェクトかどうかを判断しています。また、オブジェクトであり、かつ null でない場合に限り、再帰的に呼び出しています。

 

これらの実装により、与えられたオブジェクトの全ての undefinednull に置き換わった新しいオブジェクトが返されます。