我正在遍历这样格式化的状态:
this.state = {
dayTime: {
Monday:['7:00', '8:00'], Tuesday: ['9:00', '12:00']
}
}
当我尝试遍历dayTime状态时,我无法(尝试for()
,.foreach
和.map
)。
我可以访问this.state.dayTime.Monday
,但我想知道是否存在推荐的进行此类迭代的方法。
我在下面附上了我的一些尝试:
this.state.dayTimeArray.forEach((ele)=>{
console.log(ele)//error
}, this)
this.state.dayTimeArray.map(function(ele){
console.log(ele)//error
}, this)
任何建议都值得赞赏
答案 0 :(得分:1)
您不能像在数组中那样遍历对象。 您在这里没有什么选择:
使用Object.entries获取条目数组:[键,值]
Object.entries(this.state.dayTimeArray).forEach(([key, value]) => {
console.log(key, value);
})
使用Object.keys()仅在[星期一,星期二]获得密钥
Object.keys(this.state.dayTimeArray).forEach((key) => {
console.log(key, this.state.dayTimeArray[key]);
})
使用Object.values()仅获取值['7:00','8:00'],['9:00','12:00']
Object.values(this.state.dayTimeArray).forEach(([key, value]) => {
console.log(value);
})
答案 1 :(得分:1)
为了遍历对象属性,您可以使用Object.keys()
,Object.values()
或Object.entries()
中的任何一个(最适合您的需求)来获取属性数组。可以在
使用Object.entries
Object.entries(this.state.dayTimeArray).forEach(([key, value]) => {
console.log(key, value);
})
使用Object.keys()
Object.keys(this.state.dayTimeArray).forEach((key) => {
console.log(key, this.state.dayTimeArray[key]);
})
使用Object.values()
仅获取值
Object.values(this.state.dayTimeArray).forEach(([key, value]) => {
console.log(value);
})