iT邦幫忙

2024 iThome 鐵人賽

DAY 9
1

前言

昨天分享了物件的淺拷貝實作方式,用了 JavaScript ES6 的展開運算符來將陣列做複製。

接下來研究的是,當遇到深層物件(多層級)的狀況時要怎麼去處理拷貝問題呢?書上介紹的最簡單方式是用 JSON.stringify 將物件轉換成字串後,再透過 JSON.parse() 轉回物件格式。

但是,如果巢狀物件中包含 Date 物件,這種方法就不適用了。因為 JSON.stringify 會將 Date 物件轉換成字串,這樣在使用 JSON.parse() 轉回物件時,Date 物件就會丟失其原有的功能。

針對這種情況,可以使用第三方的深拷貝函式庫,例如 lodashcloneDeep 方法,來處理包含 Date 的巢狀物件。

const _ = require('lodash');

const originalObject = {
  name: "John",
  dateOfBirth: new Date()
};

const deepCopiedObject = _.cloneDeep(originalObject);

上一篇
[Day 8] 物件原來還分淺層複製及深層複製(一)
下一篇
[Day 10] Call by value、Call by reference、Call by sharing 是指?
系列文
讀書筆記&心得-看完這本就會懂!帶你無痛提升JavaScript面試力:精選55道前端工程師的核心問題 × 求職加分模擬試題解析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言