Javascript-获取数组元素的位置
Javascript - Get position of the element of the array
例如,一个名为arrayElements的数组类型的变量包含[1,2,3,4]。
除了使用循环之外,我如何获得数组变量中值为"3"的位置?
谢谢。
考虑使用indexOf
,它返回元素在数组中基于0的位置。
例如
[1,2,3,4].indexOf(3); // produces 2
请注意,此方法在IE 8及以下版本中不可用。
var a = [1,2,3,4];
console.log( jQuery.inArray(3, a) ); //returns 2
如果你已经在你的项目中使用jQuery,这将是你的选择!jQuery在可能的情况下使用indexOf(最快的解决方案),如果没有,则返回到基于循环的解决方案。
或者简单地使用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]);
正如一些答案所指出的,较新浏览器中的数组具有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有一些这样的函数。
此示例仅说明使用map()
返回数组的每个元素是可能的。一旦我们有了它,我们就在数组中检索元素的索引:
function searchPosition(elementToFind, array) {
return array.map(function(el) {
return el;
}).indexOf(elementToFind);
}
searchPosition(3, [1, 2, 3, 4]); // returns 2
奖金:
这不是OP问题的一部分,但如果您想检索满足特定条件的数组中第一个元素的位置,可以使用ES6:中提供的findIndex()
函数来完成
var array = [101, 90, 104, 80];
function findFirstLessNumber(element) {
return element < 100;
}
console.log(array.findIndex(findFirstLessNumber)); // returns 1 (the position of 90)
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- JavaScript Unshift EACH 数组元素
- 删除数组元素并将它们添加回原来的位置
- 将排序数组的数组元素移动到具有特殊逻辑的另一个位置
- Javascript-获取数组元素的位置
- 将数组元素按索引位置相乘
- Javascript检查字符串中的每个字符并返回相应位置的数组元素