javascript – 当我有效使用非点符号时,jshint的解决方案“更好用点符号编写”

前端之家收集整理的这篇文章主要介绍了javascript – 当我有效使用非点符号时,jshint的解决方案“更好用点符号编写”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我提供一个字符串时,如何使用点符号?

我正在编写一些代码来填充角度’x-editable’类型的控件.我有一个预定义的值数组,基于我的webapi服务将传递给我的字符串标识符.它发回一个字符串.基于此字符串,我从使用以下方法预定义的数组中选择对象:

valuetoshow = myarray['stringFromWebApiCall'];

JSHINT正在抛弃它,因为它要我使用点符号.我理解为什么JSHINT告诉我这个,而且我也理解它告诉我哪些线路,而且我知道如果我将我的代码改为像“answers.undergraduate = bigarray”那样它将修复jshint.当我在下面的代码中提供了一个字符串时,我只是不知道如何使用.notation访问数组.

在javascript中是否有某种方法可以让我使用字符串以点表示法查找某些内容?我已经习惯了C#和这种准类型奇怪的变量定义,这让我很难理解.

> [‘UNDERGRADUATE’]最好用点符号书写.
> [‘GRADUATE’]最好用点符号书写.
> [‘HONORARY’]最好用点符号书写.
> [‘DOCTORATE’]最好用点符号书写.
> [‘MASTERS’]最好用点符号书写.
> [‘UNDEFINED’]最好用点符号书写.

我应该试图压制错误吗?我应该在api结果上写一个很难看的开关声明吗?

这是真正的代码

answers['UNDERGRADUATE'] = [
      { 'name': 'Find a job','ticked': false,'hideThisGroup':false,'checkBoxDisabled': false },{ 'name': 'Create a network with STTI members','hideThisGroup':true,{ 'name': 'Receive nursing guidance',{ 'name': 'Learn and grow through online continuing nursing education','checkBoxDisabled': false }
    ];

    answers['GRADUATE'] = [
      { 'name': 'Find a job',{ 'name': 'Expand your network with STTI members',{ 'name': 'Grow your portfolio',{ 'name': 'Develop advanced leadership skills',{ 'name': 'Stay current on nursing trends','checkBoxDisabled': false }
    ];

    answers['NURSE LEADER'] = [
      { 'name': 'Find a job','checkBoxDisabled': false }
    ];

    answers['HONORARY'] = [
      { 'name': 'Find a job','checkBoxDisabled': false }
    ];

    answers['DOCTORATE'] = [
      { 'name': 'Find a job','checkBoxDisabled': false }
    ];

    answers['MASTERS'] = [
      { 'name': 'Find a job','checkBoxDisabled': false }
    ];

    answers['UNDEFINED'] = [
      { 'name': 'Find a job','checkBoxDisabled': false }
    ];

    if ($rootScope.constituent != undefined){
        if ($rootScope.constituent.InductedAs != undefined) {
            $scope.constituentPriorities = answers[$rootScope.constituent.InductedAs.toUpperCase()];
        } else {
            $scope.constituentPriorities = answers['UNDEFINED'];
        }   
    }

解决方法

Is there a way to use dot notation to accomplish something like this

……是吗?

answers.UNDERGRADUATE = ...

等等

澄清一下:你需要在代码上面编写实际的数据声明,作为answers.UNDERGRADUATE. JSHint并没有抱怨这条线:

... answers[$rootScope.constituent.InductedAs.toUpperCase()];

显然,该行不能使用点符号编写. JSHint抱怨的那些行是字面上写成答案[‘UNDEFINED’]或答案[‘UNDERGRADUATE’].这些是你需要解决的问题,以沉默JSHint.

猜你在找的JavaScript相关文章