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
でない場合に限り、再帰的に呼び出しています。
これらの実装により、与えられたオブジェクトの全ての undefined
が null
に置き換わった新しいオブジェクトが返されます。