2011-11-30 10 views
11

私は2つのパラメータ(name、telnumber)をとるinsertという関数を持っています。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誰が私の答えを下落させましたか? :)))))))))))))それは面白いです: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"} 
]