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. 获取元素在Javascript中的位置
- 3. JavaScript获取期权元素的位置?
- 4. 通过javascript获取元素的位置
- 5. 在指定位置获取元素 - JavaScript
- 6. 获取元素的位置/位置
- 7. 基于位置获取基于Javascript元素的元素节点
- 8. 获取元素位置scrollTop
- 9. 最优雅的方式来获取数组元素的位置?
- 10. Javascript 2D数组获取每个元素
- 11. 如何获取元素的位置
- 12. 获取变换后的元素位置
- 13. 获取拖放元素的位置
- 14. Angular 2:获取HTML元素的位置
- 15. jQuery获取元素的更新位置
- 16. JS当元素的位置绝对位置时,获取基于元素的元素的位置
- 17. 获取DOM元素在流动位置
- 18. xsl获取元素数组
- 19. PHP:获取数组元素
- 20. Javascript:获取鼠标相对于父元素的位置
- 21. 按位置使用JavaScript获取元素的ID?
- 22. 使用javascript获取元素的水平和垂直位置
- 23. 取消设置基于位置的多个数组元素
- 24. 如何获取元素位置 - Imacros
- 25. 获取元素位置()不考虑父
- 26. 按位置获取HTML元素
- 27. 根据阵列中阵列的位置获取数组中的代表元素
- 28. 查找数组元素的位置,使用Javascript中的元素本身变白
- 29. 获取元素相对于第n个父元素的位置
- 30. 获取父元素中元素的位置(索引)
如果数组是[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