微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/js/153482.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐