2014-07-22 34 views
0

好的,我已經採用給定的陣列中,兩個命名對象存在稱爲觸點的功能 截取的教程以在陣列的未命名的對象:的Javascript傳遞字符串創建一個對象名(小白)

function add(firstName, lastName, phoneNumber, email) { 

contacts[contacts.length] = { 
    firstName: firstName, 
    lastName: lastName, 
    phoneNumber: phoneNumber, 
    email: email 
    }; 
} 

add("Buddy", "King", "312-555-5555", "[email protected]"); 

添加未命名的對象。但是如果我想給這個新對象命名,我該怎麼辦?我想使用第一個參數)「Buddy」作爲對象名稱,所以將字符串轉換爲?

+1

給對象一個名字?這是有點不清楚你問的。你能發表一個「命名」對象的例子嗎? – War10ck

+0

你想改變一個已經存在的條目嗎?通過名字搜索找到條目? – Ian

+1

閱讀[javascript arrays](http://www.w3schools.com/js/js_arrays.asp)。從長遠來看,它會幫助你。 – Danny

回答

2

使用此(關聯數組):

contacts[firstName] = { 
    firstName: firstName, 
    lastName: lastName, 
    phoneNumber: phoneNumber, 
    email: email 
}; 

現在你可以用contacts['Buddy'] 「好友」 條目。 請注意,JS中的所有數組都是關聯的,但編號數組看起來不像它。

+0

不要太過於字面,但是沒有像關聯數組那樣的東西。有陣列,還有對象。數組是對象。對象具有屬性。在數組上設置屬性(不是數值)幾乎沒有好的理由。數組旨在與數字索引和提供的特定方法('push','pop'等)一起使用,這些方法操縱數據的內部表示(反映在'length'屬性中)。我認爲你的解決方案是理想的,但'contacts'應該是一個對象字面值('{}'),而不是一個數組('[]') – Ian

+0

@Ian:謝謝你指出。我不想詳細討論對象,具有數組行爲的對象以及缺乏數組行爲的明顯數組(例如'arguments')以及可以在Crockford的* Good parts *中查找的更多內在因素。當然,'contacts = {};'。區別在於JS只具有關聯性(從任意鍵到對象)並且從不具有實際索引(或地址偏移量,例如C和C++中)。從這個意義上講,所有對象都使用關聯性,因此數組也是這樣。但是這對於評論來說已經太長了:) – pid

+0

謝謝,終於習慣了JS語言,所以現在我知道你的意思了! – Paeon

相關問題