javascript - 通过jquery获取对象数组的索引

标签 javascript jquery indexing utility

我有以下数组:

var = array[
            {"id" : "aa", "description" : "some description"},
            {"id" : "bb", "description" : "some more description"},
            {"id" : "cc", "description" : "a lot of description"}]

我尝试查找包含id ===“bb”的数组的索引。我想出的解决方案如下:

var i = 0;
while(array[i].id != "bb"){
   i++;
}
alert(i) //returns 1

是否有更简单的方法来实现跨浏览器功能?我尝试了 $.inArray(id,array) 但它不起作用。

最佳答案

我认为代码的复杂性没有任何问题,但我建议进行一些更改,包括添加一些验证,以防该值不存在。此外,您可以将其全部包装在可重用的辅助函数中......

function getArrayIndexForKey(arr, key, val){
    for(var i = 0; i < arr.length; i++){
        if(arr[i][key] == val)
            return i;
    }
    return -1;
}

然后可以在您的示例中使用它,如下所示:

var index = getArrayIndexForKey(array, "id", "bb");
//index will be -1 if the "bb" is not found

Here is a working example

注意:这应该是跨浏览器兼容的,并且也可能比任何 JQuery 替代方案更快。

关于javascript - 通过jquery获取对象数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19111224/

相关文章:

javascript - 想在通过追加按钮创建字段时提交表单元素

mysql - 索引 bool 字段是否有任何性能提升?

MongoDB 索引 2 个字段并让索引用于第 3 个字段的搜索

mysql在两列之间选择太慢

javascript - 为什么我的 jquery 脚本在从 MasterPage 继承的网络表单中不起作用?

javascript - 将 JSON 数据分组为周/月,无需额外的外部库?

javascript - 链接不适用于 React.js 中的 React 路由器

jquery - Woocommerce:产品变体的自定义图像

javascript - 全局安装后找不到模块 'socket.io'

javascript - 如何创建一个超链接,其 onclick 处理程序是一个匿名函数?