2017-06-05 35 views
2

我想生产这种意外的标记:使用地图,形成对象

[ 
     {name: "james", age: 10}, 
     {name: "john", age: 12}, 
     {name: "johnny", age: 56} 
    ] 

我下面的代码失败的阵列,得到了预期的令牌?

let x = [ 
    {name: "james", age: 10, school: "London"}, 
    {name: "john", age: 12, school: "India"}, 
    {name: "johnny", age: 56, school: "USA"} 
] 

let y = x.map(obj => {name:obj.name, age:obj.age}) 

console.log(y) 

回答

3

你缺少的()变化这样({name:obj.name, age:obj.age})

,必须用返回的对象字面到括号。否则 大括号将被视为表示该函数的主体。接下来 作品:

Reference question

let x = [ 
 
    {name: "james", age: 10, school: "London"}, 
 
    {name: "john", age: 12, school: "India"}, 
 
    {name: "johnny", age: 56, school: "USA"} 
 
] 
 

 
let y = x.map(obj => ({name:obj.name, age:obj.age})) 
 

 
console.log(y)

1

在创建带箭头的表情对象,你需要换身在括号,或者它会被解析为箭头功能:

let y = x.map(obj => ({name: obj.name, age: obj.age})); 
1

就像一个参考,这也将工作,并且是相同的:

let x = [ 
 
    {name: "james", age: 10, school: "London"}, 
 
    {name: "john", age: 12, school: "India"}, 
 
    {name: "johnny", age: 56, school: "USA"} 
 
]; 
 

 
let y = x.map(obj => { 
 
    return { name:obj.name, age:obj.age }; 
 
}); 
 

 
console.log(y);