Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

520
Views
Why my code to clone an array doesn't work JavaScript

So since JavaScript doesn't let you copy array using "=" I have to write this code. But it doesn't work

let arr = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];
var arrclone = [];

for (let x = 0; x < arr.length; x++) {
  for (let y = 0; y < arr[x].length; y++) {
    arrclone[x][y] = arr[x][y];
  }
}
console.log(arrclone);

It said

arrclone[x][y] = arr[x][y];
                    ^
TypeError: Cannot set property '0' of undefined. 

How is it undefined both of them are already been declared. Sorry, I am a beginner sorry if my question seems stupid.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

When you start, each row of the array is empty. So initialise it to an empty row of array:

for (let x = 0; x < arr.length; x++) {
  // Use this...
  arrclone[x] = [];     // ========================> You missed this line.
  for (let y = 0; y < arr[x].length; y++) {
    arrclone[x][y] = arr[x][y];
  }
}

FYI, for the right approach, please use Array.slice() (but only for primitive values, see the problem here).

about 4 years ago · Juan Pablo Isaza Report

0

You should ideally be using Array.slice() for copying arrays:

let arr = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];
var arrclone = arr.map(e => e.slice());
console.log(arrclone);

about 4 years ago · Juan Pablo Isaza Report

0

Javascript is not a language that makes copies on assignment. It uses references and stores them instead. Here you are literally just copying reference to the data instead of actual data. There are multiple ways to help you with this.

  1. The most simple way is to use var arrclone = JSON.parse(JSON.stringify(arr))

  2. We can also use array destructuring and it will look something like this: var arrclone = [...arr]

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!