Javascript: добавление в ассоциативный массив

У меня есть функция, называемая insert, которая принимает два параметра (name, telnumber).

Когда я вызываю эту функцию, я хочу добавить в ассоциативный массив.

Так, например, когда я делаю следующее:

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

Я хочу, чтобы это хранилось следующим образом:

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

Ответ 1

Что-то вроде этого должно сделать трюк:

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

Ответ 2

var users = [];

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

Ответ 3

Будет использовать что-то вроде этого:

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

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

Я не думаю, что вам следует попытаться проанализировать номер телефона как целое, поскольку он может содержать пробелы, плюс знаки (+) и, возможно, даже начинаться с нуля (0).

Ответ 4

Если вы хотите, вы можете добавить свою функцию в 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"}
]

Ответ 5

Предполагаю, что вы используете ссылку на массив с 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");

Ответ 6

В JS нет такого термина, как "ассоциативный массив", хотя вы можете использовать следующее:

var list = [];

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