2017-12-27 29 views
2

Iは、アレイは、いくつかの関数によって使用されるアレイクリックで可変コンテンツを置き換える方法は?

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を()を呼び出した場合、それはまだ[C、「A」、「B」を]使用しています。 ["d"、 "e"、f "]を使う方法

私は作業例hereを作成しました。 「変更」ボタンをクリックすると、oldVarを["d"、 "e"、 "f"]にします。私はとても長い時間がかかってしまい、すみません。私はその日中忙しかった。

私は解決策がありますが、面倒です。それはhereです。

+1

あなたは問題を示して作業例を作ることはできますか? – epascarello

+0

配列はこの関数内で宣言されていますか?そのような場合は、配列をすべての関数の外で宣言して、グローバルにしてみてください。あなたのコードのより大きな例を投稿してください。 – Ivan86

+0

Javascript変数はレコードの参照渡しに渡されますが、私はあなたの問題がスコープかもしれないと思います。 Javascriptでは、スコープをブロックするのではなく、関数のスコープを使用します。 oldVarをグローバルに、またはchageVar関数内で宣言していますか? –

答えて

3

長さをゼロに設定し、アイテムを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>

関連する問題