16
A
回答
34
考慮使用indexOf
,它返回數組中元素的從0開始的位置。
例如
[1,2,3,4].indexOf(3); // produces 2
請注意,此方法在IE 8及以下版本中不可用。
2
或簡單的用一個for循環:
function getPosition(elementToFind, arrayElements) {
var i;
for (i = 0; i < arrayElements.length; i += 1) {
if (arrayElements[i] === elementToFind) {
return i;
}
}
return null; //not found
}
getPosition(3, [1, 2, 3, 4]);
4
jQuery提供YOUT與 「inArray」 的功能,類似於PHP:
var a = [1,2,3,4];
console.log(jQuery.inArray(3, a)); //returns 2
如果你已經在你的項目中使用jQuery,這將是要走的路! 如果可能的話,jQuery使用indexOf(最快的解決方案),如果不是,則退回到基於循環的解決方案。
0
正如已經被一些答案指出,在新的瀏覽器陣列有一個像indexOf
map
和forEach
方法是非常方便,以避免編寫大量的for循環。
如果您需要支持舊環境,沒有這些功能我會使用庫(或寫一個你自己的)來實現這些很常見的數組操作(樣的SOC的建議)強烈推薦。
var arrayfn = (function(){
var M = {};
M.indexOf = function(array, item){ ... };
M.contains = function(array, item){ return M.indefOf(array, item) !== -1; };
M.map = function(array, callback){ ... };
}());
arrayfn.contains([1,2,3], 2);
無論如何,最流行的JS框架應該已經擁有大部分的內建。例如,我記得Dojo,jQuery和Underscore具有其中的一些功能。
相關問題
- 1. 獲取數組元素中的位置
- 2. 獲取數組的元素位置
- 3. 獲取元素在Javascript中的位置
- 4. 通過javascript獲取元素的位置
- 5. JavaScript獲取期權元素的位置?
- 6. 在指定位置獲取元素 - JavaScript
- 7. 獲取元素的位置/位置
- 8. 基於位置獲取基於Javascript元素的元素節點
- 9. 獲取元素的位置並創建它的數組函數
- 10. 獲取元素位置scrollTop
- 11. 獲取元素在Z-指數確定的位置 - 的Javascript
- 12. 使用Javascript/jQuery的從元素位/索引獲取的數組元素索引
- 13. 最優雅的方式來獲取數組元素的位置?
- 14. Javascript 2D數組獲取每個元素
- 15. 在java中獲取二維數組中元素的位置
- 16. 獲取元素的位置確定了
- 17. WebBrowser對象 - 按位置獲取元素
- 18. - 如何獲取元素位置?
- 19. 獲取變換後的元素位置
- 20. 如何獲取元素的位置
- 21. 獲取拖放元素的位置
- 22. Angular 2:獲取HTML元素的位置
- 23. 在UIWebView的位置獲取HTML元素
- 24. 獲取元素的更新位置
- 25. 獲取點擊元素的位置
- 26. 獲取@keyframe動畫元素的位置
- 27. jQuery獲取元素的更新位置
- 28. JS當元素的位置絕對位置時,獲取基於元素的元素的位置
- 29. 獲取DOM元素在流動位置
- 30. PHP:獲取數組元素
如果數組是[1,2,3,4,3],那麼如何獲得兩個3s在兩個不同變量上的位置? – CPC 2014-03-10 21:09:27
作爲參考,您可以使用Array.reduce方法返回包含多個元素位置的數組。下面的代碼返回一個位置數組[2,4] - 兩個3s的位置。 var array = [1,2,3,4,3] .reduce(function(array,n,i){if(n === 3)array.push(i); return array;},[]); – RepeatQuotations 2016-02-17 06:04:15