2013-11-26 97 views
0

只是一個簡單的問題,我真的想要一個答案太,因爲我不明白100%組合/相同排列

的Javascript

示例:假設您提示有名稱的用戶。夠簡單吧?但是你有一個數組,說明了幾個名字(其中之一是有)SOOO基本上是即時消息說,到目前爲止:

var names = new Array("bob", "joe", "steve", "sabrina"); 

您提示有名字,他們在「鮑勃」中輸入用戶。但是現在你只想顯示鮑勃的年齡也位於在你的數組:

var ages = new Array("12","45","32","22"); 

的姓名和年齡都一樣,就像秩序。所以鮑勃是12,喬45等現在,回到我的主要問題。由於用戶輸入「Bob」,你將如何去顯示年齡「12」,或者如果用戶輸入「joe」顯示「45」?

謝謝你的時間! (:

PS關於此主題的所有其他信息和事實的讚賞

+0

看到這裏https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/字符串/ indexOf – elclanrs

回答

2

嘗試

ages[names.indexOf("bob")]; // 12 

注意,對象(關聯數組)是這類數據的更好比如!:

ages = { 
    bob: 12, 
    joe: 45, 
    // etc. 
}; 

現在你可以這樣做:

ages.bob; // 12 

或者:

var name = 'bob'; 
ages[name]; // 12 

從我的知識,對象「的indexOf」實際上並沒有與所有的瀏覽器,有輸出使用陣列中的數據的另一種方法? - Ryanrrjk 49秒前

indexOf基本上除IE8以外的其他作品。如果您需要支持IE8或更低時,你可以使用一個墊片,如:

Array.prototype.indexOf = function(item) { 
    var i = this.length; 
    while (i-- > 0) if (this[i] === item) return i; 
    return -1; 
} 
+0

啊好吧,看起來更容易!據我所知,對象「indexOf」實際上並不適用於所有瀏覽器,是否有使用數組輸出數據的替代方法? – Ryanrrjk

+0

@Ryanrrjk'indexOf'基本上可以在除IE8以外的任何地方工作。如果您需要支持IE8或更低版本,您可以使用墊片(我將很快編輯一個到我的答案) – Doorknob

+0

如果OP輸入名稱,值得知道'ages.bob'等於'ages [「 bob「]',因此如果你在變量中有名字,你可以使用'ages [name]'。 – Amadan