2014-01-21 66 views
0

可能嗎? 我嘗試做以下事情:JS陣列值綁定到現有陣列

var foo = 'foo'; 
var bar = 'bar'; 

var x; 
var y; 

var array1 = [x, [foo, y]]; 
var array2 = [x, [foo, bar], [foo, y]]; 

console.log(array1[0]); //undefined 
console.log(array1[1][1]); //undefined 

console.log(array2[0]); //undefined 
console.log(array2[2][1]); //undefined 

array1[0] = 'working'; 
array2[0] = 'working'; 

y = 'hello'; 

console.log(array1[0]); //working 
console.log(array1[1][1]); //undefined 

console.log(array2[0]); //working 
console.log(array2[2][1]); //undefined 

雖然很明顯,當你知道哪裏有約束力的價值存在,在這種情況下x,很難將值綁定到值未知的位置來定義價值,在這種情況下爲y

有什麼想法?謝謝。

+2

這不是很明顯的你想要做什麼,而是你應該閱讀了關於變量是如何在JavaScript中傳遞,然後閱讀如何傳遞價值的作品? – adeneo

+0

那麼,我知道如何在JS中傳遞變量。我不同意我想要做的是顯而易見的。這就是爲什麼你說'你應該讀一下變量是如何通過JavaScript'' –

+0

我沒有說這是顯而易見的,我說這是***不明顯,因爲沒有解釋代碼或問題? – adeneo

回答

3

這聽起來像你想要的是某種包裝的:

var x = {}; 
var y = {}; 

var array = [x, [foo, y]]; 

console.log(array[0].value); // undefined 
console.log(array[1][1].value); // undefined 

x.value = "hello"; 
y.value = "goodbye"; 

console.log(array[0].value); // hello 
console.log(array[1][1].value); // goodbye 
+0

謝謝羅素Zahniser。這似乎是一種方式。讚賞。 –