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

1.业务逻辑是有值的到有值的之间是已完成不用管,但最后几位为null的他们之间没有值那就是代表待执行,我怎么取到这几个null?

2.业务区别 : 有值的之间的null代表已完成null或负值样式都要隐藏掉,后面划线连着的null他们之间 没有值 代表待检我要取到他们把样式显示出来

https://img4.mukewang.com/5c88c39700013ae508000376.jpg


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);


沧海一幻觉
浏览 304回答 1
1回答

人到中年有点甜

一定要获取数组里面的null就是用filter获取,const nullArr = arr.filter(item=> item===null)ES5: var nullArr = _times.filter(function(item){ return item === null })但是null这个值你获取了是没有意义的,有意义的应该是null的位置,也就是数组的下标==============================function getNulls(arr) {&nbsp; return arr.reduce(function(nullList, item, index) {&nbsp; &nbsp; if (item === null) {&nbsp; &nbsp; &nbsp; nullList.push(index);&nbsp; &nbsp; &nbsp; return nullList;&nbsp; &nbsp; }&nbsp; &nbsp; return [];&nbsp; }, []);}var arr = [1, 2, 3, null, 4, null, null, 8, null, null, null];var result = getNulls(arr);console.log(result);// [8, 9, 10]上面是获取下标的方法。不过我还是不太理解你的需求,比如你为什么要在if判断?最好你能完整描述下需求,以找到更好的实现方式
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript