javascript - 简单的 "if"语句

标签 javascript

最近我一直在测试一些东西,并且坚持了一小段代码。这是一个草图:

let data = [{
    date: "2018-10-09 18:00",
    temp: "+13"
  },
  {
    date: "2018-10-09 21:00",
    temp: "+12"
  },
  {
    date: "2018-10-10 00:00",
    temp: "+5"
  },
  {
    date: "2018-10-10 15:00",
    temp: "+18"
  },
  {
    date: "2018-10-11 00:00",
    temp: "+4"
  },
  {
    date: "2018-10-11 00:00",
    temp: "+4"
  }
];

let res = [];

function setData(data, day, time, id) {
  let a = {
    day: day,
    time: time,
    temp: data.temp
  }
  res[id].push(a);
}

function parse(data) {
  let day, time, id = -1;

  for (let i = 0; i < data.length; i++) {
    day = data[i].date.split(" ")[0];
    time = data[i].date.split(" ")[1];

    if (id !== 0 && id !== -1) {
      setData(data[i], day, time, id);
    } else {
      id++;
      res[id] = new Array();
      setData(data[i], day, time, id);
    }
  }

}

parse(data);
console.log(res);

我需要解析数据并对不同的日期进行排序,如下所示:

res = [[{day: 2018-10-09}, {day: 2018-10-09}], [{day: 2018-10-10}, {day: 2018-10-10}], [{day: 2018-10-11}, {day: 2018-10-11}]]

但是我的代码不正确,我做了很多次尝试,但都失败了。请帮助我

最佳答案

您需要修改您的方法,没有逻辑可以对其中的日期进行分组。请尝试使用以下代码:

let data = [
	{
		date: "2018-10-09 18:00",
		temp: "+13"
	},    	
	{
		date: "2018-10-10 00:00",
		temp: "+5"
	},
    {
		date: "2018-10-09 21:00",
		temp: "+12"
	},
	{
		date: "2018-10-10 15:00",
		temp: "+18"
	},
	{
		date: "2018-10-11 00:00",
		temp: "+4"
	},
	{
		date: "2018-10-11 00:00",
		temp: "+4"
	}
];

let res = {};

function setData(data, day, time){
	let a = {
		day: day,
		time: time,
		temp: data.temp
	}
	res[day].push(a);
}

function parse(data) {
	let day, time, output = [];
	
	for (let i = 0; i < data.length; i++) {
		day = data[i].date.split(" ")[0];
		time = data[i].date.split(" ")[1];
        res[day] = res[day] || [];
		setData(data[i], day, time);    		
	}
    let sortedDates = Object.keys(res).sort();
    for (let date of sortedDates) {
         output.push(res[date]);
    } 
    return output;
}

res = parse(data);
console.log(res);

如果您还想对内部数组进行排序,那么您可以查看 sort with compare function

关于javascript - 简单的 "if"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52913592/

相关文章:

javascript - 增强千位分隔符的正则表达式?

javascript - mailto onclick 中的换行符

javascript - jquery 头文件冲突

javascript - 使用 $(window).resize 并在初始页面加载时调用函数

javascript - Axios 向后端发布请求参数未定义

javascript - 如何在表格中显示数据?

javascript - D3 : How to remove tick marks at the top and bottom of Y axis

javascript - 使用Jquery选择相同类型元素中的元素

javascript - 我怎样才能让jquery倒计时重定向到重置文件

javascript - 如何调用kendo中的函数