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