如何从具有给定(键、值)对的长列表中检索对象
How to retrieve an object from a long list having a given (key,value) pair?
我们有一长串这样的对象:
var myLongList = [
{id="1", desc:"ahahah"},
{id="2", desc:"ihihih"},
{id="3", desc:"ohohoh"},
...
{id="N", desc:"olala"}
]
需要检索具有id="14575"
的对象。因为我的列表很长,而且我必须进行很多这样的检索,所以我不希望通过循环遍历列表来获取我的对象。
function index(js, indexColumn){
var out={};
var o;
for (var key in js) {
o = js[key];
out[o[indexColumn]]=o;
}
return out;
}
调用var myLongListIndexed = index(myLongList, "id");
构建一个索引列表,myLongListIndexed["14575"]返回我心爱的对象。
是否有更标准的方法来检索基于(键,值)对列表中的对象?
听起来像是最明智的方法,除了将for..in
与数组一起使用不是一个好主意。最好使用常规的for
循环或js.forEach(...)
。
:
for (var i = 0; i < js.length; i += 1) {
o = js[i];
out[o[indexColumn]]=o;
}
或this(要求ES5):
js.forEach(function(el) {
out[el[indexColumn]] = el;
});
jQuery版本(不需要ES5):
$.each(js, function() {
out[this[indexColumn]] = this;
});
相关文章:
- 如何使用json将对象列表从java转换为javascript
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- 如何更改列表.js列表对象中的选项
- 如何使用变量值将列表<对象>序列化为 JSON
- 将列表对象从javascript转换为JSON
- 将对象推入对象列表对象
- 如何从列表对象生成li和锚点标记
- AngularJS-通过dons't在ng模型中设置列表对象
- 隐藏一定数量的列表对象
- 要切换的Javascript类列表对象和查询选择器
- 从动态列表对象中获取对象
- jPlayer不播放播放列表对象的全局声明中的歌曲
- Spring MVC @ResponseBody, JSON, JSP.试图返回列表<对象>从控制器到JSP
- Javascript列表对象可以'不添加JSON?node . js,重火力点
- javascript从文件列表创建文件列表对象
- 流星 - 在列表对象中呈现所有者的名称
- UndefinedError:列表对象没有未定义元素