Как проверить функцию, которая возвращает массив объектов, элементы которых содержат объекты Date в формате javascript? - PullRequest
0 голосов
/ 11 января 2019
obj= {
  "element-id": 0,
  "measurement": [{
    "from": "2018-10-17T13:40:00Z",
    "to": "2018-10-17T13:45:00Z",
    "value": [{
      "value": 9,
      "label": "fw"
    }, {
      "value": 7,
      "label": "bw"
    }]
  }, {
    "from": "2018-10-17T13:45:00Z",
    "to": "2018-10-17T13:50:00Z",
    "value": [{
      "value": 6,
      "label": "fw"
    }, {
      "value": 8,
      "label": "bw"
    }]
  }]
};

var res = foo(obj);

-- Expected res output:
[ { address: 0,
    datetime: 2018-10-17T13:45:00.000Z, <- this is a javascript Date object
    day: '2018-10-17',
    In: 9,
    Out: 7 },
  { address: 0,
    datetime: 2018-10-17T13:50:00.000Z, <- this is a javascript Date object
    day: '2018-10-17',
    In: 6,
    Out: 8 }]

Функция foo должна преобразовать объект obj в другой объект. Результирующий объект res должен быть массивом, все элементы которого структурированы одинаково, и все они должны содержать объект Date. Как я могу это проверить?

1 Ответ

0 голосов
/ 11 января 2019

Это то, что я понял из вашего поста и комментария. Проведите меня через это, если есть какие-либо ошибки.

obj= {
  "element-id": 0,
  "measurement": [{
    "from": "2018-10-17T13:40:00Z",
    "to": "2018-10-17T13:45:00Z",
    "value": [{
      "value": 9,
      "label": "fw"
    }, {
      "value": 7,
      "label": "bw"
    }]
  }, {
    "from": "2018-10-17T13:45:00Z",
    "to": "2018-10-17T13:50:00Z",
    "value": [{
      "value": 6,
      "label": "fw"
    }, {
      "value": 8,
      "label": "bw"
    }]
  }]
};

let arr = [obj]
let foo = []
arr[0].measurement.map(data => {
	let d = new Date()
	foo.push({
		address: 0,
		datetime: d.toISOString(),
		day: d.toISOString().slice(0,10),
		in: data.value.filter(v => v.label == "fw")[0].value,
		out: data.value.filter(v => v.label == "bw")[0].value
		
	})
})
console.log(foo)
...