Как я могу найти объект в массиве объектов? - PullRequest
0 голосов
/ 10 октября 2019

Вот объект.

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, ...]
} 

Я бы хотел найти класс в школе. Школа только одна. И класс, человек несколько.

И я хотел бы добавить, удалить, редактировать school он принадлежит и class.

Есть ли способ найти объектс индексом? Я имею в виду как HashMap. Вы получаете доступ к значению с помощью строки, подобной этой.

var mAge = mPerson["age"];
var mAge = mPerson.age;

Я могу найти объект с помощью цикла for, но вход в систему выглядит очень сложным и не таким эффективным, как O (n ^ 2).

Редактировать

Я хотел бы выполнить get, put, remove, edit в массиве с Object.

Например,

Я хочу удалить 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).

1 Ответ

0 голосов
/ 11 октября 2019

Если вы хотите конкретную функциональность, я бы создал для нее функцию. Например, вы можете создать функцию 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...