为了账号安全,请及时绑定邮箱和手机立即绑定

像数组是这样的我怎么顺向拿到最后几项的null?

像数组是这样的我怎么顺向拿到最后几项的null?

沧海一幻觉 2019-03-06 18:13:49
1.业务逻辑是有值的到有值的之间是已完成不用管,但最后几位为null的他们之间没有值那就是代表待执行,我怎么取到这几个null?2.业务区别 : 有值的之间的null代表已完成null或负值样式都要隐藏掉,后面划线连着的null他们之间 没有值 代表待检我要取到他们把样式显示出来3.这是我目前的逻辑代码, _times是上图数组,我现在这代码已经获取到了最后一位数字之后的第一个null,我还想继续获取所有的怎么拿?;// 计算宽度    var firstTimes = [];    function test(arr){        //这里获取获取null        var index = -1;        for(var i = arr.length; i >= 0; --i){            if(typeof arr[i] == 'number'){                index = i+1;                break;            }        }        console.log(index);                //计算宽度        for (var f = 0;f < arr.length;f++){            if (arr[f] > 0 ) {                firstTimes.push(Math.round((totals + 100)/totals * arr[f]) + '%');            } else {                firstTimes.push('none');            }        }    };    test(_times);
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

一定要获取数组里面的null就是用filter获取,const nullArr = arr.filter(item=> item===null)


ES5: var nullArr = _times.filter(function(item){ return item === null })


但是null这个值你获取了是没有意义的,有意义的应该是null的位置,也就是数组的下标


==============================


function getNulls(arr) {

  return arr.reduce(function(nullList, item, index) {

    if (item === null) {

      nullList.push(index);

      return nullList;

    }

    return [];

  }, []);

}


var arr = [1, 2, 3, null, 4, null, null, 8, null, null, null];


var result = getNulls(arr);

console.log(result);


// [8, 9, 10]

上面是获取下标的方法。不过我还是不太理解你的需求,比如你为什么要在if判断?最好你能完整描述下需求,以找到更好的实现方式


查看完整回答
反对 回复 2019-03-13
  • 1 回答
  • 0 关注
  • 303 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信