この解答例はChatGPTによって生成されています,正しいかは自己判断で。
BFE.devでのAI解答例 - JavaScript コーディング問題
26. Object.assign()を実装する
function myAssign(target, ...sources) {
if (typeof target !== "object" || target === null) {
throw new TypeError("Target must be an object");
}
sources.forEach((source) => {
if (typeof source !== "object" || source === null) {
return;
}
Object.keys(source).forEach((key) => {
target[key] = source[key];
});
});
return target;
}
この実装では、target
と1つ以上のsources
を受け取ります。まず、target
がオブジェクトであることを確認し、TypeError
をスローします。次に、それぞれのsources
について以下を行います。
- もし
source
がオブジェクトでない場合、何もしません。 - そうでない場合、
source
の各プロパティについて、そのプロパティをtarget
にコピーします。
最後に、target
を返します。