Javascript 访问关联数组

Javascript 访问关联数组,javascript,associative-array,Javascript,Associative Array,我试图创建一个函数,允许我们输入一个人的名字和他们的年龄。然后将其保存到数组中 var personnes=[]; function ajoutePersonne(n,a){ personnes["Nom"]=personnes.push(n); personnes["Age"]=personnes.push(a); personnes["Enfant"]=""; } ajoutePersonne("Julie",100); ajoutePersonne("Sarah

我试图创建一个函数,允许我们输入一个人的名字和他们的年龄。然后将其保存到数组中

var personnes=[];

function ajoutePersonne(n,a){
    personnes["Nom"]=personnes.push(n);
    personnes["Age"]=personnes.push(a);
    personnes["Enfant"]=""; 
}
ajoutePersonne("Julie",100);
ajoutePersonne("Sarah",83);
ajoutePersonne("Jennifer",82);
ajoutePersonne("Olivia",79);
ajoutePersonne("Marge",55);
ajoutePersonne("Mathilde",48);
ajoutePersonne("Joanne",45);
ajoutePersonne("Isabelle",47);
ajoutePersonne("Celine",23);
ajoutePersonne("Caroline",29);
ajoutePersonne("Wendy",24);
ajoutePersonne("Kaliste",26);
ajoutePersonne("Karine",22);
ajoutePersonne("Sophie",28);
ajoutePersonne("Orianne",25);
ajoutePersonne("Alice",21);

print(personnes[1].Nom);

为什么当我试图访问数组中“Nom”类别下的第二个人时,什么也没有显示

您需要将整个对象放入数组中,而不是单独推送名称和年龄:

var personnes=[];

function ajoutePersonne(n,a){
    personnes.push({ "Nom" : n, "Age" : a, "Enfant" : ""});
}

personnes是一个数组,因此在javascript中只能有整数索引

做我认为你想做的事:

function ajoutePersonne(n,a){
    var person = {nom: n, age: a, enfant: ""};
    personnes.push(person);
}

其中“person”是一个使用JSON的javascript对象。

数组仅用于存储数字索引,您可以创建类似于
Nom
的成员,但这些成员的响应方式与普通数字索引不同*

使用对象或将对象推入阵列

var personnes=[];
personnes.push({ "Nom" : "Julie", "Age" : 100 });
personnes[0].Nom // -> Julie

但是,最后两个符号假定名称是唯一的

*您可以执行以下操作:

var ar = [];
ar.attr = 5;
ar.attr; // -> 5
ar.length; // -> 0, since attr is not enumerable
// also all other regular array operation won't affect attr

persones[“Nom”]=persones.push(n)---这条奇怪的线是什么意思?这不是关联数组。关联数组是指其索引是要查找的名称而不是数字索引的数组。在Javascript中,关联数组是使用对象实现的。我并不想吹毛求疵,但您的一些语句并不完全正确:1)数组也可以有非数字成员,但它们不被视为常规数组索引2)没有“Javascript对象使用JSON”这样的东西,您的意思是对象文字符号-JSON是一种数据符号格式,使用javascript对象文字符号作为基础。
var personnes={};
personnes["Julie"] = {"age":100 /*,"more attributes":"here"*/}
var ar = [];
ar.attr = 5;
ar.attr; // -> 5
ar.length; // -> 0, since attr is not enumerable
// also all other regular array operation won't affect attr