- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 JSON 对象数组,我想找到具有特定属性的对象。我知道这看起来像是一个重复的问题,但请继续,因为我认为它与之前的问题略有不同。
与我共事的一个人建议使用 IndexOf,这让我开始思考。 mongo 中是否有类似于 $elemMatch 功能的东西?是否有一些命令基本上用伪代码表示“从这个数组中获取具有此属性的对象”?随着迭代,我觉得伪代码说“看看这个数组中的第一个对象。如果这个对象有这个属性,给我这个对象。如果没有,看看这个数组中的第二个对象...... "
我理解如何像我 friend 建议的那样使用 IndexOf,但是我想得越多,我开始认为 IndexOf 方法可能代码行数较少,但它最终是否必须遍历对象中的对象数组来找到我需要的索引?所以如果我想用这个属性对对象做一些事情,并且我使用方法 IndexOf 来获取索引,那么我会像 myArray[indexFromIndexOfMethod] 一样引用这个对象,然后相应地修改它,对吗?因此,如果 javascript 遍历数组本身以执行 IndexOf 方法,为什么我不编写自己的迭代并节省一个步骤呢?现在,如果 IndexOf 方法使用一种比遍历和检查每个元素更有效的方法来定位数组元素,那么使用它对我来说就有意义了。否则,如果您可以通过简单的迭代获得相同的结果,那么使用 IndexOf 方法就没有意义。
最佳答案
Array.prototype.indexOf
也只是遍历数组并返回具有匹配值的第一个索引。这与你可以用循环做的事情是一样的。它可能比 for
循环快一点,也可能不快一点,因为 indexOf
可以用 native 代码实现,并且优化方式与您的 不同for
循环可以,但是没有本质区别。
如果您经常需要尽快访问特定值,则值得通过对象中的该值对它们进行索引。意思是,如果您想经常通过其属性 .foo
查找特定对象,请执行以下操作:
var byFoo = {}
for (var i = 0; i < myArray.length; i++) {
byFoo[myArray[i].foo] = myArray[i];
}
这允许您使用 byFoo['baz']
进行即时访问。
当然,这可能会增加维护这些索引的多个副本的开销,但它会大大加快数组访问速度。您需要权衡利弊。
关于javascript - JavaScript 中的 IndexOf 方法是否比遍历数组更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34336336/
我想检索字符串列表中的行号(从文件加载)。Indexof 似乎完全匹配。有没有办法检索带有通配符版本的 Indexof 的行?类似于 SL.Indexof('?sometext')? 谢谢! 最佳答案
我已经解析了一些 JSON,但我想获取从 JSON 获得的链接,在链接中找到一个使其不同的标识符(例如 www.foo.com/IDENTIFIER/home),并拥有该标识符作为一个字符串插入到另一
我正在浏览 jQuery 的源代码并碰到这个: return indexOf.call( array, elem ); - Line 683 我想知道这背后的逻辑是什么,为什么不这样做: return
我正在从一个带有空格后的非组合变音符号的字符串中创建一个子字符串。这样做时,我使用 .Contains() 检查字符串。然后执行子串。当我使用空格时 char内部 .IndexOf() ,程序按预期执
我正在使用 Jayway JsonPath 库版本 2.4.0。在 jsonPath 中使用 indexOf 函数,例如。 $.values[?(@.num.indexOf('101') != -1)
由于某种原因,GWT 模拟(客户端)jdk 方法 indexOf() 无法按预期工作。 示例:. 我有一个包含 3 个 NaN 对象的列表: List doubleList = new ArrayLi
Resharper 推荐我使用: int notesFirstSpaceIndex = notes.IndexOf(" ", StringComparison.Ordinal); 代替: int no
我想 String.indexOf(char)比String.indexOf(String)使用单个字符和单个字符串时(例如,'x' & "x") 为了确保我的猜测,我编写了如下简单的测试代码。 pu
我在 IE 8 中的数组顶部使用了 indexOf 方法,但它给出了错误(因为不支持它)。我选择使用 underscore.js 库。我用了_.indexOf(array, value, [isSor
这个问题已经有答案了: No overload for method, takes 0 arguments? (1 个回答) 已关闭 7 年前。 我似乎无法弄清楚为什么我总是收到此错误。 No ove
在 Firefox 和 Opera 上使用 Javascript 调用 indexOf 时出错。在 IE 中工作正常。 错误信息如下: 行动 function anonymous(Grid, Row,
在第一次渲染Use Effect时遇到一个特定的错误,我不确定如何解决。我认为这与该功能的异步性有关,但不确定。项目是一个Reactjs,Firebase,FiRestore Todo应用程序,根据用
在第一次渲染Use Effect时遇到一个特定的错误,我不确定如何解决。我认为这与该功能的异步性有关,但不确定。项目是一个Reactjs,Firebase,FiRestore Todo应用程序,根据用
我需要创建一个对字符串进行排序的函数。字符串中的每个单词都将包含一个数字。数字可以是 1 到 9(不能是 0)。 例如输入:“is2 Thi1s T4est 3a”,函数应返回“Thi1s is2 3
有没有一种方法可以在 Java 中使用 indexOf 在单个解析中查找给定文本中多个字符串的位置? 例如,我想在一次文本解析中为“你”和“ session ”做一个 indexOf“你今天能参加 s
我正在使用以下代码来搜索字符串中的值。 if (myValue.indexOf("Call") > -1) { //dosomething } 我该怎么做和或? (myValue.indexOf("
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
This question already has an answer here: Reference - What does this regex mean? (1 个回答) 1年前关闭。 我必须在
我把它写进了一个 REPL: case class Thingy(s: String) val things = List(Thingy("x"), Thingy("y")) things.index
在带有此查询的 JMESPath 中: people[].{"index":@.index,"name":name, "state":state.name} 在此示例数据上: { "people"
我是一名优秀的程序员,十分优秀!