Javascript array.filter更改类型

Javascript array.filter更改类型,javascript,arrays,reactjs,string,types,Javascript,Arrays,Reactjs,String,Types,下面的函数位于React类组件内部。 当函数被调用时,this.state.data.Date类型将更改为日期,而最初它是一个字符串。我需要这是一个字符串和困惑如何防止这种情况发生 getYear = e => { let year = e.target.value; let start = new Date("01/01/" + year); let end = new Date("12/31/" + year); let filtered = thi

下面的函数位于React类组件内部。 当函数被调用时,this.state.data.Date
类型
将更改为
日期
,而最初它是一个
字符串
。我需要这是一个字符串和困惑如何防止这种情况发生

getYear = e => {
    let year = e.target.value;

    let start = new Date("01/01/" + year);
    let end = new Date("12/31/" + year);

    let filtered = this.state.data.filter(data => {
      let day = data.Date.slice(0, 2);
      let month = data.Date.slice(3, 5);
      let year = data.Date.slice(6, 10);

      return (
        new Date(year, month, day) >= start && new Date(year, month, day) <= end
      );
    });

    this.setState({ setData: filtered });
  };
getYear=e=>{
让年份=e.目标值;
开始日期=新日期(“01/01/”+年);
let end=新日期(“12/31/”+年);
let filtered=this.state.data.filter(数据=>{
设day=data.Date.slice(0,2);
让month=data.Date.slice(3,5);
让年份=data.Date.slice(6,10);
返回(

新日期(年、月、日)>=开始日期和新日期(年、月、日),如果控制台在
getYear
函数的第一行记录
this.state.data
,则日期是否仍为字符串?@EdLucas yes,格式均为“dd/mm/yyyy”您应该在像jsfiddle.net这样的平台上提供完整的可执行代码显示的代码中没有一个会改变
数据
数组,例如
状态.data[0]=…
设置状态({data:…})
或内部对象,例如
data.Date=…
。请提供代码的最小可复制示例。另请注意,因为您的数组由对象组成,并且您没有将数据克隆到
setData
中,如果代码操作任何对象,它将同时反映在
状态.data
状态.setData
如果您在
getYear
函数的第一行上控制台log
this.state.data
,那么您的日期仍然是字符串吗?@EdLucas yes,所有格式都是“dd/mm/yyyy”,您应该在类似jsfiddle.net的平台上提供完整的可执行代码。显示的代码中没有一个会改变
数据
数组,例如
state.data[0]=…
设置状态({data:…})
或内部对象,例如
data.Date=…
。请提供代码的最小可复制示例。另请注意,因为您的数组由对象组成,并且您没有将数据克隆到
setData
中,如果代码操作任何对象,它将同时反映在
状态.data
状态.setData