我试图创建一个允许我们输入人名和年龄的功能。然后它将保存到一个数组中。
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”类别下访问阵列中的2秒人物时,什么都没有显示出来。
答案 0 :(得分:2)
您需要将整个对象放在数组中,而不是单独推送名称和年龄:
var personnes=[];
function ajoutePersonne(n,a){
personnes.push({ "Nom" : n, "Age" : a, "Enfant" : ""});
}
答案 1 :(得分:0)
personnes是一个数组,因此在javascript中它只能有整数索引。
做我认为你想做的事情:
function ajoutePersonne(n,a){
var person = {nom: n, age: a, enfant: ""};
personnes.push(person);
}
哪里"人"是一个使用JSON的javascript对象。
答案 2 :(得分:0)
数组仅用于存储数字索引,您可以创建Nom
之类的成员,但这些不会像普通数字索引那样反应。*
使用对象,或将对象推入数组。
var personnes=[];
personnes.push({ "Nom" : "Julie", "Age" : 100 });
personnes[0].Nom // -> Julie
或
var personnes={};
personnes["Julie"] = 100;
// equal to:
personnes.Julie = 100;
或
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