我们有大量的对象:
var englishStudents = [
{StudentId: 1, Name: "John"},
{StudentId: 2, Name: "Jack"},
{StudentId: 3, Name: "Jane"}
];
需要检查此数组中是否包含另一个相似的对象,只需单独比较一个属性即可。
var randomStudent = {StudentId: 1337, Name: "Foo"};
这就是我所拥有的,似乎它会起作用,但我认为这不是最好的方法。
var studentIds = $.map(englishStudents, function (student, index) { return student.StudentId; });
var randomStudentLearnsEnglish = false;
for (var sId in studentIds) {
if (randomStudent.StudentId == sId) {
randomStudentLearnsEnglish = true;
break;
}
}
执行此操作的优化方法是什么?
最佳答案
您应该将学生数据保存在哈希表中,例如 JHashtable而不是数组。对于更复杂的场景,您可以维护多个哈希表,例如 studentsById
、studentsByCountryCode
等。
关于javascript - 如何根据一个属性优化JS对象的数组查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636266/