2017-12-27 46 views
2

제가클릭시 변수 콘텐츠를 바꾸는 방법은 무엇입니까?

배열
var oldVar = ["a", "b", "c"]; 

어레이가 어떤 기능이 사용되어있다.

function myFunction() { 
// Do stuff with oldVar. 
} 

내가 링크를 클릭하면 다른 변수

var newVar = ["d", "e", "f"]; 

의 내용으로 oldVar 컨텐츠를 교체하고 싶습니다. 내가 좋아하는 뭔가를 시도 :

<a onclick="changeVar()">Change</a> 

function changeVar() { 
oldVar = newVar; 
} 

을하지만 링크를 클릭 한 후 별도의 버튼으로하여 myFunction()를 호출하는 경우, 그것은 여전히 ​​[ "B"C "A"를]를 사용합니다. [ "d", "e", f "]를 사용하는 방법?

나는 작업 예제를 만들었다 here. "변경"버튼을 클릭하면 oldVar가 [ "d", "e", "f"]가됩니다. 너무 오래 걸려서 미안해. 나는 낮에는 바빴다.

나는 해결책을 가지고 있지만, 성가시다. here입니다.

+1

당신은 문제를 보여줍니다 작업 예제를 만들 수 있습니까? – epascarello

+0

배열이이 함수 내에서 선언 되었습니까? 그렇다면 배열을 모든 함수 밖에서 선언하여 전역으로 만듭니다. 더 큰 코드 예제를 게시하십시오. – Ivan86

+0

Javascript 변수는 레코드에 대한 참조로 전달되지만 문제는 범위가 될 수 있습니다. Javascript는 범위를 차단하는 대신 기능 범위를 사용합니다. 전 세계적으로 oldVar를 선언하고 있습니까, 아니면 chageVar 함수 안에서 선언하고 있습니까? –

답변

3

길이를 0으로 설정하고 밀어 넣기를 사용하여 항목을 oldVar에 삽입 할 수 있습니다.

function changeVar() { 
 
    oldVar.length = 0; 
 
    Array.prototype.push.apply(oldVar, newVar); 
 
    show(); 
 
} 
 

 
function show() { 
 
    console.log(oldVar); 
 
} 
 

 
var oldVar = ["a", "b", "c"], 
 
    newVar = ["d", "e", "f"];
<a onclick="changeVar()">Change</a>