JavaScript在数组中查找对象的最有效方法
JavaScript Most Efficient Way to find Object in Array
我似乎找不到一种商定的方法来通过单个字段在对象数组中查找对象,特别是像Mongo id这样的大字符串字段。例如,我有以下数组:
[
{
_id: "55e4a11251e4c7914426xxxx,
name: 'John'
}, {
_id: "55e4a11251e4c7914426yyyy",
name: 'Jack
}
]
我现在想创建一个函数,从_id相等的数组中返回对象。我有以下几点,但似乎还可以改进:
function getObject(searchedId, array) {
for (var i = 0; i < array.length; i++) {
if (array[i]._id === searchedId) {
return array[i];
}
}
}
你所拥有的是一个线性搜索,这可能是最好的,可以做的,除非数组以某种方式排序。
您可以使用filter:
function search(searchedId, array){
var obj = array.filter(function ( obj ) {
return obj._id === searchedId;
})[0];
}
注意:.filter()在IE8中没有实现,但你可以使用ES5-shim轻松处理。
最简单的方法是使用find方法
var foundObj = yourObjectArray.find((obj) => { return obj._id == id });
除了使用lambda表达式,还可以使用回调函数
相关文章:
- 在jQuery中创建向下滑动子菜单的最有效方法
- 使用Underscore.js修改json数组中所选元素的更有效方法
- 选择具有值数组的所有元素的最有效方法
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- 将javascript数组中的项移动到特定位置的有效方法
- 将JS对象数组转换为嵌套形式的最有效方法
- 隐藏具有特定类$.each、for等的元素的有效方法
- 什么's是调用具有可变参数的函数的有效方法
- 选择具有特定数据的所有 html 标记的最有效方法是什么 - [适当性],无论值如何
- 使用 jQuery 调用 PHP 端点的最有效方法
- 这是解析 Int 的有效方法吗?
- 在JavaScript中搜索数组映射的最有效方法
- 获取字符串中最后一个换行符的最有效方法是什么
- 什么's是在两个(或多个)阵列中找到匹配的细胞序列的最有效方法
- 什么's是在IE8+中添加元素的最有效方法
- 从任何jquery选择器字符串创建元素的最有效方法
- 在日期范围内查找丢失日期的最有效方法是什么
- 对区间[1,10^12]中的整数进行编码/解码的快速有效方法是什么
- 在条件(if)结构的条件语句中是否有定义变量的有效方法
- 在ASP.NET中使用JQuery UI自动完成的有效方法