2013-04-27 4 views
0

는이 코드가 있습니다배열 사본을 만드는 방법은 무엇입니까?

const settings = { 
      notes: [new musicnote(480,400,"wav/1.wav","cyan",true)], 
      emiters: [new emiter(300,240), new emiter(340,240)] 
     } 

var notes = []; 
var emiters = []; 

var LoadLevel = function (level) { 
    if(settings[level] !== undefined){ 
     currentLevel = level; 
     notes = settings[level].notes; 
     emiters = settings[level].emiters; 
    } 
} 

를 내가 게임 (삭제 또는 일부를 추가)에 emiters 배열을 변경하면 그것은 settings.emiter 배열에 같은 않습니다. 그래서 내 질문은 - settings 개체에 배열에 대한 참조 대신 새 배열을 전달하는 것입니다?

+0

중복 : http://stackoverflow.com/questions/7486085/copying-array-by-value-in-javascript, http://stackoverflow.com/questions/565430/deep-copying-an-array-using-jquery 등이 있습니다. – elclanrs

답변

4

당신이 할 수 Array.slice과 :

var original = []; 
var copy = original.slice(); 

// to test: 
copy.push("foo"); 
alert(original.length); // 0 
+0

그것이 효과가있다! 감사! –

관련 문제