鸿蒙NEXT-Data类型数据通过AppStore获取后找原本一样的数据(值一样)但是比较结果却为false
我在使用
dataTime.indexOf(Time) 来在Date[]数组里面找一个存在的相同的数据,发现即使我明确知道该dataTiem中有和Time一样的Data属性的值,但是却获得了-1,比较结果为false。
分析错误原因:
Date[]复杂数据类型,在比较时,会比较他们的地址是否相同,而不会去比较他们的值,那该如何去实现呢?去比较他们的值。
示例代码如下:
方式一:使用JSON
@Entry
@Component
struct Index {@State dataTime: Array<Date> = []@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<Date> = []@State Time: Date = new Date()aboutToAppear(): void {this.dataTime.forEach((item)=>{console.log(Boolean(item.getTime()=== this.Time.getTime())+'')})}build() {}
}