switch语句中的return对象获得了意外的令牌,

时间:2017-07-03 06:29:22

标签: javascript

下面的切换声明有什么问题?错误在...... key: data} ??

__normalizer = (data) => {
    if(data){
        switch(data) {
            case 'promo':
                {name: 'Promotion', key: data}
            break

            default:
                data
        }

    }

    return data
}

3 个答案:

答案 0 :(得分:1)

Switch/case不会分配或返回任何内容。您的目的是创建并返回一个对象,但您不能分配或返回它。正如torazaburo comment中所述,您实际拥有的是code block语法错误。

您需要返回对象,或将其指定给变量。此外,如果数据落在promo的情况下,您还需要返回数据。

__normalizer = (data) => {
    if(data){
        switch(data) {
            case 'promo':
                return { name: 'Promotion', key: data };
        }
    }

    return data;
}

您可以通过移除开关/案例轻松简化代码:

__normalizer = (data) => {
  if (data === 'promo') {
    return { name: 'Promotion', key: data };
  }

  return data;
}

答案 1 :(得分:0)

您需要做的就是添加"返回"之前" {名称:'促销',关键:数据}"和"数据"。

答案 2 :(得分:-1)

您需要在if的末尾返回。并为每个案例结果分配data



__normalizer = (data) => {
    if (data) {
      switch (data) {
        case 'promo':
          data = {
            name: 'Promotion',
            key: data
          };
          break;
        default:
          data = data
      }
      return data
    }
    }
    console.log(__normalizer('promo'))