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.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...