Ça fait plus d'un mois que j'ai fais un break sur Peef - 🟩 aucune mise à jour - 🆕 aucun nouveau contenu - 📛 aucune correction ❓Pourquoi ce break ? - 📊 je voulais observer les métriques et comprendre ce qui se passe - 🉑 j'avais beaucoup d'idées dans ma tête et je devais les mûrir afin de pouvoir décider des les implémenter ou non - 😩 j'étais fatigué 👨‍💼 Ce que j'ai appris d'octobre 2020 à Aujourd'hui - 📊 les visiteurs passent 1 min sur le site - 📉 sur 774 utilisateurs qui ont visité le site, seuls 16% reviennent - 📰 les articles les plus lus sont ceux qui parlent de blockchain et bitcoin et ces visites proviennent de Google 🚀 Après avoir tout restructuré en terme d'idées qui seront implémentées dans un futur +/- proche - 🆕 J'ai dans la nouvelle mise à jour (déployée aujourd'hui), restructuré le contenu 🗃️ puisque c'est l'élément que je mets en avant pour apporter de la valeur. Ainsi, pour fidéliser de nouveaux utilisateurs👨‍💻, mon défis sera de publier du contenu de qualité ✅ chaque semaine 🛰️J'ai la ferme conviction que les développeurs heureux produisent des logiciels de qualité 🚀: c'est pourquoi j'ai décidé de mettre Peef en ligne dans le but de réunir les développeurs 🌍 autour de l'apprentissage et du partage.

BitClout, le réseau social crypto qui vous donne accès à un wallet. Découvrez mon profil 👉 https://bitclout.com/u/abdounasser202

Discover the queen of code: https://youtu.be/5sNuPYJpSCI

BitClout is a social media based on blockchain https://bitclout.com/u/abdounasser202

I usually use :

JSON.parse(JSON.stringify(objectToClone))

But it doesn't work well when your object have cyclical references. And the good news is that it doesn't always depend of you.

In the last issue I had, one of my object had a member called 'idSetInterval'. Its value was the value returned by the setInterval() function (the function used to trigger another function call every x milliseconds). This setInterval() function is supposed to return an integer, but in nodejs it returns an object that is part of a doubly linked structure (my code was working pretty well in the browser but not in the backend):

Example of value returned by setInterval() in NodeJS:

Timeout {
  _idleTimeout: 100,
  _idlePrev: [Timeout],
  _idleNext: [Timeout],
  _idleStart: 1742197,
  _onTimeout: [Function],
  _timerArgs: undefined,
  _repeat: 100,
  _destroyed: false,
  [Symbol(refed)]: true,
  [Symbol(kHasPrimitive)]: false,
  [Symbol(asyncId)]: 338,
  [Symbol(triggerId)]: 5
}

So JSON.stringify doesn't know how to manage cyclical references. I managed this with some hacks, but with doubly cyclical references it is harder.

Do you have a better or simpler method to clone objects in javascript ?