在使用Javascript获取数据之前修改数据

在使用Javascript获取数据之前修改数据,javascript,Javascript,在下面的场景中,我将返回一组时间,但希望重新格式化它们,然后减去它们以获得一个新的时间对象,并在返回之前将该对象推送到我的列表中 我在我的行动中尝试了以下几点,但没有成功。我需要遍历整个列表 Output.json { "tatt": { "tmst": "2017-03-19T20:18:36", "errCd": "0", "errNm": null, "eta": [{ "prdt": "20

在下面的场景中,我将返回一组时间,但希望重新格式化它们,然后减去它们以获得一个新的时间对象,并在返回之前将该对象推送到我的列表中

我在我的行动中尝试了以下几点,但没有成功。我需要遍历整个列表

Output.json

{
    "tatt": {
        "tmst": "2017-03-19T20:18:36",
        "errCd": "0",
        "errNm": null,
        "eta": [{

            "prdt": "2017-03-19T20:18:19",
            "arrT": "2017-03-19T20:24:19",

        }, {

            "prdt": "2017-03-19T20:18:06",
            "arrT": "2017-03-19T20:25:06",

        }, {

            "prdt": "2017-03-19T20:17:54",
            "arrT": "2017-03-19T20:28:54",

        }]
    }
}
action.js

import axios from "axios";

function transformDateFormat(json) {

    const arrival = {
        ...json,
        date: json.data.ctatt.eta[0].arrT.substring(json.data.ctatt.eta[0].arrT.indexOf("T") + 1)   
    }
    console.log(arrival)
    return arrival;
}

export const fetchTime = () => {
  return function(dispatch, getState) {
    axios.get('/data/output.json')
      .then(transformDateFormat)
      .then((response) => {
        dispatch({type: "FETCH_FULFILLED", payload: response.data.ctatt.eta})
      })
      .catch((err) => {
        dispatch({type: "FETCH_REJECTED", payload: err})
      })
  }
}
创造新时代的逻辑

var date1 = "2017-03-18T21:28:53"; 
var date2 = "2017-03-18T21:27:53"; 

date1 = date1.substring(date1.indexOf("T") + 1);
date2 = date2.substring(date2.indexOf("T") + 1);

function parseTime(s) {
   var c = s.split(':');
   return parseInt(c[0]) * 60 + parseInt(c[1]);
}

var minutes = parseTime(date1) - parseTime(date2);
console.log(minutes + " min")
更新:


所以我能够解决这个问题,但只有在它通过我的组件返回并且我在那里进行操作之后。不确定这是否是正确的方法…任何见解都会有所帮助

你的减速器不是一个真正的减速器,它是一个动作。在real reducer.doh中执行转换逻辑,正确。对不起,这是漫长的一天