JavaScript中有几个循环,包括forEach,some,map和reduce。但是,从我目前所了解的情况来看,如果您想遍历数组并返回特定索引的值,则这些都不适合。看起来好像我只剩下循环的标准。真的吗?在javascript中允许返回值的最佳循环?
所以,例如,如果我有一个对象数组...我想找到具有特定值的项目的索引...我可以使用除常规for循环以外的任何东西吗?
JavaScript中有几个循环,包括forEach,some,map和reduce。但是,从我目前所了解的情况来看,如果您想遍历数组并返回特定索引的值,则这些都不适合。看起来好像我只剩下循环的标准。真的吗?在javascript中允许返回值的最佳循环?
所以,例如,如果我有一个对象数组...我想找到具有特定值的项目的索引...我可以使用除常规for循环以外的任何东西吗?
Array.prototype.findIndex(),通过在注释中@Andreas的建议。
您可以将函数传递给findIndex()方法,并在该函数中定义您的相等条件。
它将返回第一个数组元素的索引,它满足函数中定义的相等条件。
您可以使用foreach()而不是常规for.It是最简单的,您可以迭代并获取索引。欲了解更多信息:JavaScript Array forEach() Method
您可以使用JavaScript库http://underscorejs.org。它有很多功能。为了您的目的,您可以使用_.indexOf
。它将eturns在该值可以在阵列中找到的索引
例如:
var data=[1, 2, 3];
var index= _.indexOf(data, 2);
出放将为1
当JS有一个内建的'.indexOf()'方法的数组时,为什么要使用Underscore? – nnnnnn
['Array.prototype.findIndex()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex) – Andreas
'findIndex()'或'indexOf()' –
但是如果它是一个对象数组呢?假设'[{name:'foo',age:23},{name:'foo2',age:34}]?我如何使用indexOf来搜索这个? – Grateful