Create a structure for objects that can be easily cloned

Is there a way to automatically restructure a JavaScript object to be cloneable by eliminating all of its methods?

In my particular scenario, I am generating three.js BufferAttribute objects in a web worker and need to transmit them to the main thread.

Currently, I am creating a new object in the web worker that mirrors the original object's properties but without any methods. This modified object is then sent to the main thread where I recreate a proper three.js BufferAttribute object and assign the properties accordingly.

Answer №1

While it's not automated, a solution could involve utilizing Object.fromEntries, Object.entries, and filter:

const modifiedObject = Object.fromEntries(
    Object.entries(originalObject).filter(([key, value]) => typeof value !== "function")
);

The usage of Object.fromEntries and Object.entries might be relatively recent, but they can easily be polyfilled.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

What causes the timer to pause, and what steps can be taken to avoid it? (Using Javascript with Iframe)

On my website, I have a page where clients must view an advertisement for 20 seconds. The website is displayed in an iframe with a countdown timer above it. I've set it up so that the timer stops when the window loses focus to ensure the client is ac ...

Tips for including descriptions on individual images within the jQuery PhotoStack gallery

Recently, I encountered a challenge. I am currently utilizing a PHP file for accessing images stored in a specific folder. Here is the snippet of my PHP code: <?php $location = 'albums'; $album_name = $_GET['album_name']; $files ...

Unexpected issue with PHP/Ajax/JQuery response functionality

I am experiencing an issue with my index.php file. Here is the code: <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="ajax.js"></script ...

Converting Markdown to HTML using AngularJS

I'm utilizing the Contentful API to retrieve content. It comes in the form of a JSON object to my Node server, which then forwards it to my Angular frontend. This JSON object contains raw markdown text that has not been processed yet. For instance, t ...

Is the max and min-width being properly set by the keen-slider__slide class in keen-slider?

Check out my code snippet below: import React from 'react' import { useKeenSlider } from 'keen-slider/react' // Styles import 'keen-slider/keen-slider.min.css' interface Props { children: any } // const animation = { du ...

"Flashes of canvas in constant motion between animated scenes

I have a practical exercise to do for school, but I am very new to HTML/JS. The issue I am facing is that my canvas is flashing, like it erases one image and then quickly displays another. I want both images to be displayed at the same time. Here is the co ...

What is the best place for organizing AngularJS model logic?

In my app, I work with Shape POCO objects that are retrieved from an AngularJS ShapeService. These shapes have properties like width and height, and can be configured to maintain their aspect ratio. When one dimension changes, the other needs to be automat ...

Angular code is failing to send a signal to the server following a $http.post request

I've been using angular for about a week now and I've been struggling to solve this issue. I have a service that wraps around $http because multiple controllers make calls to the same URL. On one particular page, there is a lot of server-side bus ...

The functionality of OBJLoader has ceased to function properly following the implementation of revision

Recently, I encountered an issue while working with the objloader feature of the three.js library to display a cube in a web browser. Everything was working perfectly until I updated to revision 55 from git. Since then, I have been unable to render the c ...

Tips for sending and accessing multiple parameters in a URL for Node.js/Express GET routes

Currently, I have figured out how to successfully send and access one parameter in my GET router. However, I am unsure of how to send and access multiple parameters in the same way. Below is the code snippet demonstrating how I currently send and retrieve ...

Manipulating an element in the JSON data is causing alterations to the preceding elements

I am facing a challenge with two JSON arrays. $scope.arr1 = [ { "id": 1, "first_name": "Philip", "last_name": "Kim", "email": "<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1e6e7577732e5e737b7a777f78776c7b307d717 ...

Adding elements to a multi-dimensional array that match elements from another array

I am working with two arrays: a = [ [a, b], [c, d], [e, f], [g, h] ] b = [ [a, 4], [1, 2], [e, 3] ] My challenge lies in updating the elements of array a when they match corresponding elements in array b. Specifically, I need to add a new ...

The Angular function fails to execute when clicked

I am trying to trigger a new page launch when a cube is clicked using Angular. Unfortunately, my current code doesn't seem to be working as expected and nothing happens when I click the cubes. This makes me wonder if there is something wrong with my i ...

Tips for sending information through the link tag in react-router-dom version 6

When I include the state value in the link prop of the react router dom, I want to access and utilize this data in the component where the link redirects me, but I am unsure how to achieve this. Upon console logging location, I expect to see the array sto ...

Is there a way to make the Return key act like the Tab key in a jQuery

When the tab and enter keys are pressed, the following code exhibits different behaviors: --tab replaces the text field's value with the selected item's value and shifts focus to the next input box. --enter also changes the text field's va ...

Encountering a syntax error when utilizing a specific JavaScript method

I encountered an error while working on my JavaScript code. I am trying to prevent duplicate values using a method, but it is resulting in a syntax error. Let me explain the relevant part of the code below: var outputList = []; for (var i = 0; i < spec ...

Utilizing jQuery to store dynamically generated content

I have used jQuery to dynamically add multiple elements to my page. Now, I want to save this page so that when I reload it, everything will still be there. How can I achieve this? HTML code <body> <button id="add_div" >Add Div</button&g ...

JavaScript: utilizing 'this' and onClick events

Recently, I created a basic slideshow with 4 images where upon clicking, the selected image displays in a larger div box. The functionality is quite straightforward, but if you have any queries, feel free to ask. As of now, with only 4 images in the slides ...

Modify the scoped variable using Angular's $resource module

I am facing an issue with my Angular application where I cannot get the results of a second $resource call to update a scoped variable. Initially, I am able to generate the initial view from an Angular $resource call to an external API and display the data ...

Saving base64 encoded pdf on Safari

I am facing an issue with a POST call that returns a base64 PDF. The problem arises when trying to convert it to a Blob and download it using Safari browser. This method works perfectly in all other browsers. openPdf = () => { const sendObj = { ...