Javascript 如何在对象数组中找到对象?
这是一个objJavascript 如何在对象数组中找到对象?,javascript,node.js,object,hashmap,Javascript,Node.js,Object,Hashmap,这是一个obj var person = { no: 4, name: "Jack", hobbies:["soccer, dancing"], club: "lion" } 这是对象阵列 var club = { no: 2, name: "lion", teacher: "Linda", num: 24 students
var person = {
no: 4,
name: "Jack",
hobbies:["soccer, dancing"],
club: "lion"
}
这是对象阵列
var club = {
no: 2,
name: "lion",
teacher: "Linda",
num: 24
students: [person, person2, person3, ...]
}
var school = {
no: "NW-10",
name: "The school of Victory",
address: "23 Vega St. Gorgia, Texas",
classes: [club, club2, club3, ...]
}
我想在学校里找一个班。学校只有一所。而阶级、人是多重的
我想添加、删除、编辑它所属的学校和班级
有没有办法找到一个有索引的对象?我的意思是像一个HashMap。您可以使用如下字符串访问值
var mAge = mPerson["age"];
var mAge = mPerson.age;
school[person.club].remove(); // The club item is removed.
school2[person.club].put(2); // The club item is added after second club object.
我可以通过for循环找到对象,但是,登录似乎非常复杂,效率不如O(n^2)
编辑
我想在带有对象的数组中完成get
,put
,remove
,edit
比如说,
我想删除人员3
。然后,我可以找到像这样的类
var mAge = mPerson["age"];
var mAge = mPerson.age;
school[person.club].remove(); // The club item is removed.
school2[person.club].put(2); // The club item is added after second club object.
它将在O(n)中找到该项。如果您需要特定的功能,我将为其创建一个函数。例如,您可以创建removeClub函数和putClub函数:
var person = {
no: 4,
name: "Jack",
hobbies:["soccer, dancing"],
club: "lion"
};
var club = {
no: 2,
name: "lion",
teacher: "Linda",
num: 24,
students: [person]
}
var school = {
no: "NW-10",
name: "The school of Victory",
address: "23 Vega St. Gorgia, Texas",
classes: [club]
};
function removeClub(clubName){
var clubIndex = school.classes.findIndex(c => c.name === clubName);
school.classes.splice(clubIndex, 1);
}
function putClub(clubName, index){
school.classes.splice(index, 0, clubName);
}
removeClub(person.club);
putClub(person.club,0);
console.log(school);
您的对象是无效的JavaScript。这是不正确的:
爱好:{“足球,跳舞”}
。这个:或者这个:你可以使用array.find你可以添加更多关于你想要完成的事情的细节吗?创建像学生:[个人,个人2,个人3,…]
在O(1)
中没有办法吗?我尝试了这个方法,我不知道一个对象是否也能工作。我做了slice(index,1)
来删除对象元素,但它没有被删除。