查找 JSON 元素的索引号
find index number of json element
假设我得到了一个看起来像这样的json对象:
{"someList": [{"id": "21154859" },{"id": "21154865" },{"id": "21154856" },{"id": "21154870" }]}
我想找出我所在的当前"someList"项目的索引号。我有 someList 项目 ID,它由 var aid 表示并等于 : 21154856。
我创建了一个这样的函数:
$.getJSON( url, function( data ) {
var jsonLength = data.someList.length;
for ( i=1; i <= jsonLength; i++ ){
chx = data.someList[i].id;
if(chx === aid){
var currentidno = Number(i) + 1;
$('#page').html('').append(currentidno + ' of ' + jsonLength);
break;
}
}
});
当我设置它时,它工作正常,并给我这样的结果:3 的 4
但是感觉效率低下,我想知道如果有数千种可能性,它会如何表现。 有人可以权衡这是否是实现我想做的事情的最佳方式,并验证或否认这是完成任务的好方法的假设吗?
你可以试试这个:
jQuery(someList).index({"id": "21154859" });
其中 someList 是 JSON 数组。
No.循环只是要走的路。但是,如果您需要经常对许多元素进行搜索,则构建索引可能会很有效(或者如果没有其他属性,则只是一次将 JSON 作为数字数组交付):
var indexArray = data.someList.map(function(o){return o.id;});
var currentidno = indexArray.indexOf(aid) + 1;
或者,您可以按对象属性而不是数组进行索引:
someValues = {"21154859":{index:0},"21154865":{index:1},"21154856":{index:2},"21154870":{index:3},... };
// no order needed!
var currentidno = someValues[aid].index + 1;
相关文章:
- 如何索引jquery中的每个元素
- 如何在z索引为auto的元素下堆叠
- 将一个元素放在具有相同z索引的其他元素前面
- 获取javascript中输入元素的索引
- 如何设置元素的z索引?JQuery、Javascript、CSS、HTML
- 已筛选jQuery集中元素的索引
- JavaScript-在不影响索引的情况下将元素插入数组
- 正在获取单击的元素相对于整个文档的索引
- 触发具有较低Z索引值的DOM元素的事件
- 获取页面上每个元素的Z索引
- 获取不同元素的索引
- 获取当前元素的索引并更改他的样式
- JQUERY 按钮返回到索引元素
- 获取在列表视图中具有特定首字母的索引元素
- 如何更改test.html中的索引元素
- 使用索引元素id时出现意外错误
- 删除数组中不存在的索引元素上的运算符行为
- 如何获取索引元素
- $index的元素变化,而使用过滤器如何获得正确的索引元素angularjs
- Javascript - 如何从 2D 数组中获取索引 [1] 元素的总和