2011-11-30 96 views
11

我有一個函數稱爲insert,它帶有兩個參數(名稱,telnumber)。Javascript:添加到關聯數組

當我調用這個函數時我想添加到關聯數組中。

因此,例如,當我做到以下幾點:

insert("John", "999"); 
insert("Adam", "5433"); 

我想它,以便存儲這樣的:

[0] 
{ 
name: John, number: 999 
} 
[1] 
{ 
name: Adam, number: 5433 
} 
+4

「關聯數組」只是JavaScript中的對象。 – zzzzBov

+2

從技術上講,你的意思是你想要添加對象到數字索引的數組中。 JavaScript沒有「關聯」數組。 –

+1

@邁克爾是的,那是正確的。 – ritch

回答

27

像這樣的東西應該做的伎倆:

var arr = []; 
function insert(name, number) { 
    arr.push({ 
     name: name, 
     number: number 
    });   
} 
+5

您可能會指出OP不*使用關聯數組;他正在使用一組對象。 –

4
var users = []; 

users.push({name: "John", number: "999"}); 
users.push({name: "Adam", number: "5433"}); 
1

我會認爲你是使用一些數組引用與insert

var arr; 
function insert(na, nu) { 
    nu = Number(nu) || 0; 
    //alternatively 
    nu = parseInt(nu, 10); 
    arr.push({ name: na, number: nu }); 
} 
arr = []; 


insert("John", "999"); 
insert("Adam", "5433"); 
-1

有沒有這樣的期限作爲JS的「關聯數組」,雖然你可以使用下列內容:

var list = []; 

function insert(name, number) { 
    list.push({ 
    name: name, 
    number: number 
    }); 
} 
+1

我會建議[閱讀此](http://www.pageresource.com/jscript/jarray2.htm) – Leon

+0

呃?這是[另一個來自MS](http://msdn.microsoft.com/en-us/library/windows/apps/5kh4af6c(v = vs.85).aspx) – Leon

+2

「作爲關聯數組的對象」並不意味着JS有「關聯數組」。一切都是JS中的一個對象,你可以向任何東西添加屬性,但它不會使這些對象關聯數組。 btw誰downvoted我的答案? :))))))))))這很有趣:D – ioseb

4

會用這樣的事情;

var contacts = []; 
var addContact = function(name, phone) { 
    contacts.push({ name: name, phone: phone }); 
}; 

// usage 
addContact('John', '999'); 
addContact('Adam', '5433'); 

我不認爲你應該嘗試分析電話號碼爲整數,因爲它可能包含的空格,加號(+),甚至以零(0)開始。

+0

關於parseInt的好處,我剛剛看到「Number」 - 沒有考慮上下文:-) – jabclab

+0

剛剛發現,上面的'contacts' var應該是'[]'而不是'{}'。 – jabclab

+0

謝謝,編輯我的帖子 – Stefan

2

如果你想要你可以添加你的功能Array.prototype

Array.prototype.insert = function(key, val) { 
    var obj = {}; 
    obj[ key ] = val; 
    this.push(obj); 
    return this; 
}; 

並且像這樣使用它。

var my_array = [].insert("John", "999") 
       .insert("Adam", "5433") 
       .insert("yowza", "1"); 

[ 
    0: {"John":"999"}, 
    1: {"Adam":"5433"}, 
    2: {"yowza":"1"} 
]