簡體   English   中英

如何在變量而不是字符串javascript中返回數組

[英]How to return array in variable instead of string javascript

var i = 1

var pattern1 = ["apple", "pear", "orange", "carrot"]

var pattern2 = ["apple", "pear", "orange", "carrot"]

var currentPat = "pattern" + i

alert(currentPat)

currentPat變量返回字符串pattern1,而不返回數組。 我究竟做錯了什么?

您應該將模式作為數組的2個元素,然后可以使用此模式:

var i = 1
var pattern = [];
pattern[1] = ["apple", "pear", "orange", "carrot"] 
pattern[2] = ["apple", "pear", "orange", "carrot"] 
var currentPat = pattern[i]
alert(currentPat)

如果無法更改模式的定義方式,則可以使用eval("pattern"+i)但是不建議這樣做,因為它會使代碼更難閱讀,並且如果與用戶輸入一起使用,可能會導致一些安全問題。

要使用變量屬性名稱,您需要通過方括號語法進行訪問:

 var i = 1 var pattern1 = ["apple", "pear", "orange", "carrot"] var pattern2 = ["apple", "pear", "orange", "carrot"] var currentPat = window["pattern" + i] console.log(currentPat) 

因為在您的示例中pattern1pattern2都是全局變量,所以它們自動成為全局對象的屬性(在瀏覽器中是window對象)。

window.pattern1

與...完全相同

var prop = "pattern1"
window[prop]

或作為

window["pattern1"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM