2015-09-14 271 views
3

我有值的數組是這樣的:如何數組值轉換爲變量

multi_arr = ["resi_spec","resi_desc"]; 

因此,每個數組值被認爲是一個變量,我想動態存儲這些變量的一些值是這樣的:

resi_spec = "good morning" 
resi_desc = "good evening"; 

這樣數組值被轉換爲變量。這可能嗎?

我不想用use obj [resi_spec]像這樣,如果我只輸入resi_spec就意味着我使用數組而不是變量,我會早上好。

+0

你從哪裏得到應該適合的值? – Hacketo

+1

這聽起來像你應該使用的對象。 – saadq

+0

你從哪裏得到'早上好'和''晚上好'的價值?' – Halcyon

回答

-1

好的,所以我誤解了你的問題,所以這裏是我的編輯迴應。

var multi_arr = ["resi_spec","resi_desc"]; 

var object = {}; 

object[multi_arr[0]] = "good morning"; 
object[multi_arr[1]] = "good evening"; 

console.log(object); 
+1

你最好只是刪除你的答案併發佈一個新的答案,儘管現在可能已經太晚了 – Xufox

+0

由於其他答案現在有效,所以沒有什麼意義。 – Corbin

4

最好的辦法是,如波紋管

multi_arr = ["resi_spec","resi_desc"]; 
var obj = {}; 
obj[multi_arr[0]] = "good morning"; 
obj[multi_arr[1]] = "good evening"; 
console.log(obj); //prints Object {resi_spec: "good morning", resi_desc: "good evening"}) 

一個對象,你可以訪問諸如波紋管

console.log(obj["resi_spec"]); //prints "good morning"; 
console.log(obj["resi_desc"]); //prints "good evening"; 
+0

對不起這不是我所期望的,只是我輸入alert(resi_spc);我想早上得到答案,我不會使用object這是可能的嗎? – SSN

+0

@SatheeshSivaNallathambi你想要什麼呢? – Mritunjay

6

變量,你可以使用一個對象來保存值:

var multi_arr = ["resi_spec","resi_desc"]; 
 
var resi = {}; 
 
multi_arr.forEach(function(val) { 
 
    resi[val] = "good morning"; 
 
});

顯然,你將要爲每個對象的屬性,它您可以與助手功能實現不同的值:

var lookupHelper = function(key) { 
 
    if (key == 'resi_spec') return 'good morning'; 
 
    if (key == 'resi_desc') return 'good evening'; 
 
}; 
 
var multi_arr = ["resi_spec","resi_desc"]; 
 
var resi = {}; 
 
multi_arr.forEach(function(val) { 
 
    resi[val] = lookupHelper(val); 
 
});

+2

好的方法,雖然'forEach如果你想得到不同的值,''方法將會變得毫無用處,但是你可以使用另外一個數組... – Xufox

+0

要設置不同的值,你wou ld只是實現一些額外的代碼來查找適當的值。我已經添加了一個示例來說明如何完成此操作。 – pherris

4

您也千萬以下。雖然不真的建議,因爲你會創建全局變量。 Jsfiddle

var varNames = ["name1", "name2", "name3"]; 
for(var i = 0; i < varNames.length; i++){ 
    window[varNames[i]] = i; 
} 
console.log(name1); // 0 
console.log(name2); // 1 
console.log(name3); // 2 
+0

這基本上與對象方法幾乎相同,只是對象是全局對象。 – Xufox

+2

@Xufox但與其他答案不同,你可以直接訪問他們的名字(甚至不推薦) – Hacketo