这个数组逻辑我怎么实现,有些复杂....

  1. 我现在要把这2个数组做对比,上面数组到下面这个数组找字段名,然后判断两字段名后面的对应时间,如果都有值的话,后面字段对应的时间减前面字段对应的时间.
  2. 前一个字段后面没时间的话,操作样式不显示.
  3. 前一个字段后面有时间 后面字段没时间的话,判断数组后面剩下的所有项如果有时间的话就操作样式不显示,都为null没时间的话就本地时间减上一个字段后面的时间.

图片描述

图片描述

  1. 这是代码:

//日志路径:
window._webconfig.SampleMain_WebLog = [ //样本状态时间对应字段

{ state: 400, column: "RequestTime" },  //采样*
// { state: '', column: "LisSjsjTime" }, //送检
// { state: '', column: "LisQsSjTime" }, //签收
{ state: 400, column: "RegisterTime" }, //已登记*
{ state: 420, column: "InlabbingTime" }, //IOM*
{ state: 403, column: "CENTTIME" },  //离心*
{ state: 405, column: "DECAPTIME" },    //去盖*
{ state: 410, column: "TestTime" }, //测试中*
{ state: 800, column: "ReportTime" },   //已上传*
// { state: '', column: "LisReportTime" } //已发送

];

        var _valueStatu = [];  
        var SampleMain_WebLog = top._webconfig.SampleMain_WebLog;
        for (var i =0;i < SampleMain_WebLog.length;i++){
            if(SampleMain_WebLog[i].state == statuOne){
                _valueStatu.push(SampleMain_WebLog[i].column);
            } else if(SampleMain_WebLog[i].state == statuTwo){
                _valueStatu.push(SampleMain_WebLog[i].column);
            }
        }
        console.log(_valueStatu)   //字段名数组,对应图片第一个横线的
        
        
        //比较数组,字段名/时间 对应图片第二个花圈的:
        var fieldsDatas = [
            { _state: fieldsTitle[0], _column: times[0] },  //采样
            { _state: fieldsTitle[1], _column: times[1] },  //送检
            { _state: fieldsTitle[2], _column: times[2] },  //签收
            { _state: fieldsTitle[3], _column: times[3] },  //已登记
            { _state: fieldsTitle[4], _column: times[4] },  //IOM
            { _state: fieldsTitle[5], _column: times[5] },  //离心
            { _state: fieldsTitle[6], _column: times[6] },  //去盖
            { _state: fieldsTitle[7], _column: times[7] },  //测试中
            { _state: fieldsTitle[8], _column: times[8] },  //已上传
            { _state: fieldsTitle[9], _column: times[9] }  //已发送
        ]
        console.log(fieldsDatas)

阅读 2.1k
2 个回答

怎么搞你不是已经说得清楚了么,难点在哪,只能自己慢慢调试吧?无非就是取值,比对,对满足计算条件的情况进行计算。不满足直接pass掉咯。

const statusArr = ['RequestTime', 'RegisterTime', 'ReportTime']

var _valueStatu = SampleMain_WebLog.filter(function(obj) {
  return statusArr.indexOf(obj._state) !== -1
}).map(function(obj) {return obj._column})

这样拿到_valueStatu

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题