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判断?最好你能完整描述下需求,以找到更好的实现方式
添加回答
举报
0/150
提交
取消