意外令牌:使用地图形成对象数组[重复]

Posted

技术标签:

【中文标题】意外令牌:使用地图形成对象数组[重复]【英文标题】:unexpected token : using map to form array of object [duplicate] 【发布时间】:2017-11-06 03:21:04 【问题描述】:

我想制作这个

[
        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)

【问题讨论】:

【参考方案1】:

你错过了 () 这样的更改 (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)

【讨论】:

new Object(name:obj.name, age:obj.age) 也可以吗? @AyoubLaazazi .. 当然可以。但是() 就足够了。短格式声明。【参考方案2】:

使用箭头表达式创建对象时,您需要将主体包裹在括号中,否则将被解析为箭头函数:

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

【讨论】:

【参考方案3】:

作为参考,这也可以,并且是一样的:

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);

【讨论】:

以上是关于意外令牌:使用地图形成对象数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

选择JavaScript数组中的最后一个元素[重复]

获取地址栏的key-value形式的值(包括重复的key值)形成对象--重复的变成数组形式

Object.keys() 从集合中返回 MongoDB 对象上的意外键 [重复]

使用Jackson“意外令牌(START_OBJECT)使用LocalDateTime将JSON解析为POJO,预期VALUE_STRING:预期的数组或字符串。”

forEach 中的推送对象在地图外观结束时为空 [重复]

重构 JSON 对象数组