鸿蒙NEXT-Data类型数据通过AppStore获取后找原本一样的数据(值一样)但是比较结果却为false

我在使用

dataTime.indexOf(Time)
来在Date[]数组里面找一个存在的相同的数据,
发现即使我明确知道该dataTiem中有和Time一样的Data属性的值,
但是却获得了-1,比较结果为false。
分析错误原因:

Date[]复杂数据类型,在比较时,会比较他们的地址是否相同,而不会去比较他们的值,那该如何去实现呢?去比较他们的值。

示例代码如下:

方式一:使用JSON

@Entry
@Component
struct Index {
@State dataTime: Array = []
@State Time: Date = new Date()
aboutToAppear(): void {

this.dataTime.forEach((item)=>{
  console.log(''+Boolean(JSON.stringify(item)===JSON.stringify(this.Time)))
})

}
build() {

}
}

方式二:使用原本提供的方法来比较

@Entry
@Component
struct Index {
@State dataTime: Array = []
@State Time: Date = new Date()
aboutToAppear(): void {

this.dataTime.forEach((item)=>{
  console.log(Boolean(item.getTime()=== this.Time.getTime())+'')
})

}
build() {

}
}

你可能感兴趣的:(harmonyos)