首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取数组中不为空的特定值的位置(第一个和最后一个)

问获取数组中不为空的特定值的位置(第一个和最后一个)
EN

Stack Overflow用户
提问于 2012-03-13 22:50:45
回答 2查看 61关注 0票数 0

我有下一个数组:

代码语言:javascript
复制
[null,null,null,null,null,null,2,10,29,43,45,40,54,39,13,1,null,null,null,null,null]

我需要知道该数组中第一个不为空的位置,最后一个不为空的位置。

在这个特定的示例中,first将是6(将0计为位置1)和15。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-13 22:52:47

代码语言:javascript
复制
var firstPos = -1, lastPos = -1;
for(var i = 0; i < arr.length; i++) {
    if(arr[i] !== null) {
        if(firstPos == -1) {
            firstPos = i;
        }
        lastPos = i;
    }
}
票数 3
EN

Stack Overflow用户

发布于 2012-03-13 22:58:14

使用非标准数组方法:

代码语言:javascript
复制
var arr = [null,null,null,null,null,null,2,10,29,43,45,40,54,39,13,1,null,null,null,null,null];

var mapped = arr.map(function (i) {
    "use strict";    
    return i !== null;
}); 

var first = mapped.indexOf(true);
var second = mapped.lastIndexOf(true);

map、indexOf和lastIndexOf都需要IE9+浏览器或填充程序。然而,它们看起来确实很酷。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9686438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档