- 1.是预估数组,2是时间差数组
- 这是业务逻辑,第二个数组对应状态位的值 大于了 第一个数组中该状态位及之前至上一个有值状态位的值之和 ,就把该状态位标红:
- _list中第一项大于0的值的下标是3值是42,对应table数组中的前3项0,10,10,10,那业务逻辑就是 42 >0+10+10+10 样式改变为红色,第二项有值的下标是6那就是4-6之间的和,46 > 10+10+10,以此类推...
最后一项没时间差了und不用管了...
- 这是数组:
var _list = [
["采样",-2],
["送检",null],
["签收",null],
["已登记",42],
["IOM",null],
["离心",null],
["去盖",46],
["测试中",1],
["已上传",962762],
["已发送",undefined]
]
var tableTwo = [
["采样",0],
["送检",10],
["签收",10],
["已登记",10],
["IOM",10],
["离心",10],
["去盖",10],
["测试中",10],
["已上传",10],
["已发送",10]
]
- 这是目前实现代码,获得了时间差数组大于0的值和下标,昨天做到凌晨实在是没辙了...,最后的实现逻辑要是这样 if(_list中每一项大于0的值 > 对应tableTwo中对应求到的和){ > 的话对应的样式颜色变红,否则不变},第二个数组对应状态位的值 大于了 第一个数组中该状态位及之前至上一个有值状态位的值之和 ,就把该状态位标红
:
console.log(tableTwo); //预估数组
console.log(_list) //时间差数组
var _listKey = [] ,_listValue = [] ,_listDatas = [];
for(var i = 0;i < _list.length;i++){
if(_list[i][1] > 0){
_listKey.push(i);
_listValue.push(_list[i][0]) // >0的值的字段名
_listDatas.push(_list[i][1])
}
}
console.log(_listKey) // >0的值的下标
console.log(_listDatas) // >0的值
var sum = 0;
var tableTwoData = [];
for(var i = 0,k = 0;i < tableTwo.length;i++){
if(_listKey[k] > i){ //比时间差数组下标小的下标
console.log(tableTwo[i][1])
sum += tableTwo[i][1]; //第一个下标的和
}
}
console.log(sum) //第一个下标的和
其实没看懂你想表达什么,可以描述的简单一点,