javascript - 如何在对象数组中找到对象?
问题描述
这是一个对象。
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, ...]
}
我想在学校找一门课。学校只是其中之一。而Class、Person是多重的。
我想添加、删除、编辑school
它所属的class
.
有没有办法找到一个有索引的对象?我的意思是像一个HashMap。您可以使用这样的字符串访问值。
var mAge = mPerson["age"];
var mAge = mPerson.age;
我可以使用 for 循环找到对象,但是登录似乎非常复杂,效率不如 O(n^2)。
编辑
我想用Object get
.put
remove
edit
例如,
我想删除person3
. 然后,我可以像这样找到它的类。
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);
推荐阅读
- vagrant - 在 Vagrant 中,如何仅在实际配置时填充配置环境变量?
- python - 带有“if”子句的列表理解如何工作?
- php - 如何修复“在 null 上调用成员函数 update()”错误?
- go - Go 惯用的类型转换函数命名
- html - HTML 敏捷包获取类
- reactjs - 如何在 react js 中创建单独的管理路由?
- django - 如果我将应用程序重新组织到应用程序文件夹,Django 无法识别应用程序的 __init__.py 中指定的包
- php - 用 DOM 获得的路径指向 php 中的播放器
- python - 我们如何将某个变量的先前值存储在python中的某个其他变量中?
- javascript - 从嵌套的 json 中获取所有键值