Javascript: добавление в ассоциативный массив
у меня есть функция insert, которая принимает два параметра (name, telnumber).
когда я вызываю эту функцию, я хочу добавить в ассоциативный массив.
Так, например, когда я делаю следующее:
insert("John", "999");
insert("Adam", "5433");
Я хочу, чтобы он хранился так:
[0]
{
name: John, number: 999
}
[1]
{
name: Adam, number: 5433
}
6 ответов
что-то вроде этого должно сделать трюк:
var arr = [];
function insert(name, number) {
arr.push({
name: name,
number: number
});
}
var users = [];
users.push({name: "John", number: "999"});
users.push({name: "Adam", number: "5433"});
использовать что-то вроде этого;
var contacts = [];
var addContact = function(name, phone) {
contacts.push({ name: name, phone: phone });
};
// usage
addContact('John', '999');
addContact('Adam', '5433');
Я не думаю, что вы должны попытаться разобрать номер телефона, как целое число, так как оно может содержать пробелы, знаки плюс (+) и может быть даже начать с нуля (0).
Если вы хотите, вы можете добавить вашу функцию 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"}
]
я предположу, что вы используете некоторую ссылку на массив с 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");
в JS нет такого термина, как "ассоциативный массив", хотя вы можете использовать следующее:
var list = [];
function insert(name, number) {
list.push({
name: name,
number: number
});
}