Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组数据转换为对象_Javascript_Arrays_Json_Object - Fatal编程技术网

Javascript 将数组数据转换为对象

Javascript 将数组数据转换为对象,javascript,arrays,json,object,Javascript,Arrays,Json,Object,所以我有这个数组 ["2020-01-31 18:31:01", "2020-02-03 14:04:30", "2020-02-04 05:58:48", "2020-02-04 14:11:16"] 我喜欢把它转换成对象 0: {date: "2020-01-31", time: ["8:31:01"]} 1: {date: "2020-02-03", time: ["4:04:30"]} 2: {date: "2020-02-04", time: ["5:58:48", "14:11:1

所以我有这个数组

["2020-01-31 18:31:01", "2020-02-03 14:04:30", "2020-02-04 05:58:48", "2020-02-04 14:11:16"]
我喜欢把它转换成对象

0: {date: "2020-01-31", time: ["8:31:01"]}
1: {date: "2020-02-03", time: ["4:04:30"]}
2: {date: "2020-02-04", time: ["5:58:48", "14:11:16"]}
但我得到了这个结果

0: {date: "2020-01-31", time: "8:31:01"}
1: {date: "2020-02-03", time: "4:04:30"}
2: {date: "2020-02-04", time: "5:58:48"}
这是我的密码

var times = response.data.time;
var dates = [];
var t = [];
var d = '';
var newData = [];
times.forEach(time => {

   var da = time.substring(0, 10);
   var ti = time.substring(12, 19);

   if(d == da) {

     t.push(ti);

   } else {

     d = da

     var dt = {date: da, time: ti};
     newData.push(dt);

   }


 });
我很难弄明白,希望你能帮我

谢谢。

尝试使用以下功能:

const数组=[“2020-01-31 18:31:01”、“2020-02-03 14:04:30”、“2020-02-04 05:58:48”、“2020-02-04 14:11:16”];
const newData=array.reduce((acc,cur)=>{
常数[日期、时间]=当前拆分(“”);
const dateObj=acc.find(e=>e.date==date);
if(dateObj){
dateObj.time.push(时间);
}否则{
acc.push({日期,时间:[时间]});
}
返回acc;
}, []);

console.log(newData)
几乎是郝武解决方案的副本,但速度更快,因为它不依赖于线性
查找
。值被累积到一个对象中,允许快速查找,然后使用
对象提取一个数组。值

const数组=[“2020-01-31 18:31:01”、“2020-02-03 14:04:30”、“2020-02-04 05:58:48”、“2020-02-04 14:11:16”];
const newData=Object.values(array.reduce)(acc,cur)=>{
常数[日期、时间]=当前拆分(“”);
如果(!acc[日期]){
acc[date]={日期,时间:[]};
}
acc[日期].时间.推送(时间);
返回acc;
}, {}));
console.log(newData)