Ose*_*eer 11 javascript arrays
我有一个JavaScript数组,其中添加到数组的每个新项都获得下一个增量数.一个例子如下(我希望我写得正确):
ArrayofPeople[0] = [{"id": "529", "name": "Bob"}];
ArrayofPeople[1] = [{"id": "820", "name": "Dave"}];
ArrayofPeople[2] = [{"id": "235", "name": "John"}];
Run Code Online (Sandbox Code Playgroud)
命名数组ArrayofPeople,为每个人存储多个数据点.
我需要知道数组中是否存在id为820的元素.怎么做?
Man*_*ijn 10
像这样的东西:
function in_array(array, id) {
for(var i=0;i<array.length;i++) {
return (array[i][0].id === id)
}
return false;
}
var result = in_array(ArrayofPeople, 235);
Run Code Online (Sandbox Code Playgroud)
您应该迭代数组并手动检查您是否具有匹配的ID:
function getPersonById(id){
for(var i=0,l=ArrayofPeople.length;i<l;i++)
if(ArrayofPeople[0][i].id == id)
return ArrayofPeople[i];
return null;
}
Run Code Online (Sandbox Code Playgroud)
当然,这是非常低效的.我建议你将对象存储到一个由人的id索引的关联数组(也就是一个对象)中.然后,由于对象不是哈希表,因此可以立即访问具有特定ID的人:
ArrayofPeople = {};
ArrayofPeople[529] = {"id": "529", "name": "Bob"};
ArrayofPeople[820] = {"id": "820", "name": "Dave"};
ArrayofPeople[235] = {"id": "235", "name": "John"};
function getPersonById(id){
return id in ArrayofPeople
? ArrayofPeople[id]
: null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58039 次 |
| 最近记录: |