ES6地图在对象数组上抛出错误

时间:2017-05-14 09:09:17

标签: javascript reactjs ecmascript-6

const normalizeEventTypes = nextProps.events.space_events.map(obj, i => 
     obj.id
)

我没有定义代码obj,我的对象数组看起来像这样

{
    "space_events": [{
            "id": 1,
            "name": "Anniversaries"
        },
        {
            "id": 2,
            "name": "Brand Rollout"
        }
    }]
}
我错过了什么吗?

1 个答案:

答案 0 :(得分:5)

您忘记使用(),请按以下方式编写:

const normalizeEventTypes = nextProps.events.space_events.map((obj, i) => 
     obj.id
)

原因

您正在使用map回调函数中的obj和索引两个参数,因此您需要使用()来包装参数,如下所示:

a = b.map((i,j) => i)

当我们只想使用一个参数时,这些()是可选的,如下所示:

a = b.map(i => i)

使用map的不同方式:

1。 a.map(i => i + 1); //when index is not required

<强> 2

 a.map(i => {  //when want to do some calculation
       //some calculation
       return //something;
 })

3。 a.map((i,j) => i + j) //when want to use the index of item

检查工作代码段:

&#13;
&#13;
let data = {
    "space_events": [{
            "id": 1,
            "name": "Anniversaries"
        },
        {
            "id": 2,
            "name": "Brand Rollout"
        }
    ]
}

let result = data.space_events.map((obj,i) => obj.name);

console.log('result', result);
&#13;
&#13;
&#13;