遍历状态变量

时间:2018-10-28 14:51:32

标签: javascript node.js reactjs iterator

我正在遍历这样格式化的状态:

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)

任何建议都值得赞赏

2 个答案:

答案 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);
})