首页 > 解决方案 > 用javascript创建一个新数组

问题描述

当我有两个数组时,需要帮助制作新数组

第一:

var start=[ "11/10/2021", "05/10/2021", "16/10/2021", "03/10/2021" ]

第二:

var end=[ "10/10/2021", "04/10/2021", "15/10/2021", "01/10/2021" ]

我用代码创建了一个新数组,但出现错误:

var start= [];
var end= [];
var daterange =[];
var daterange = JSON.stringify(response);
var textdiv=JSON.parse(daterange );
for (var i = 0; i < textdiv.length; i++) {
     sart.push(textdiv[i].a);
     end.push(textdiv[i].b);
     daterange.push('start'=>moment(textdiv[i].a),'end'=>moment(textdiv[i].b));
} 

所以输出如下:

var daterange =[{
    'start': moment('2021-10-10'),
    'end': moment('2021-10-15')
  },
  {
    'start': moment('2021-10-25'),
    'end': moment('2021-10-30')
  }
];

标签: javascriptarraysmomentjsdaterangepicker

解决方案


我通过创建对象将 textdiv 中的任何内容存储在 daterange 数组中所需的正确键值对中。Moment 仅将字符串转换为给定格式的日期。

    var start= []; // if you already have start, you can not reinitialize it, I think you are creating a fresh array here for later use.
    var end= [];
    var daterange =[];
    var daterange = JSON.stringify(response);
    var textdiv=JSON.parse(daterange );
console.log(textdiv, daterange); // please check what you are actually getting after parsing to understand your error better
    for (var i = 0; i < textdiv.length; i++) {
         let a = textdiv[i].a; // there is a typo here
         let b = textdiv[i].b;
         daterange.push({'start' :moment(a).format('YYYY-MM-DD'),'end':moment(b).format('YYYY-MM-DD')});// you need to store them as object if you want to push them together and use format function to properly insert it as date.
    } 

推荐阅读