Javascript 如何在对象属性上映射字符串序列

Javascript 如何在对象属性上映射字符串序列,javascript,gulp,Javascript,Gulp,你好! 我有一个sting,其中可以是1个值或多个值。和具有相应键作为属性的对象 var argv.testProfiles = 'system'; var testProfiles = { e2e: '/e2e/**/*.js', system: '/system/**/*.js' }; 是否可以通过argv.testProfiles中的键获取文件夹的路径?应该是这样的: gulp.task('test:e2e', functi

你好! 我有一个sting,其中可以是1个值或多个值。和具有相应键作为属性的对象

var argv.testProfiles = 'system';
var testProfiles = {
            e2e: '/e2e/**/*.js',
            system: '/system/**/*.js'
        };
是否可以通过argv.testProfiles中的键获取文件夹的路径?应该是这样的:

gulp.task('test:e2e', function () {
    var argv.testProfiles = 'system';
    var testProfiles = {
                e2e: '/e2e/**/*.js',
                system: '/system/**/*.js'
            };
gulp.src([resolvedPath]) //where resolvedPath = '/system/**/*.js'
    .pipe();
}

可以通过两种方式从对象中的属性检索值:-

var val = testProfiles.system;

var val = testProfiles['system'];
所以你可以这样做:-

gulp.task('test:e2e', function() {
  var argv.testProfiles = 'system';
  var testProfiles = {
    e2e: '/e2e/**/*.js',
    system: '/system/**/*.js'
  };
  gulp.src(testProfiles[argv.testProfiles])
    .pipe();
});
尽管如此,您将收到:

未捕获的语法错误:意外标记


var argv.testProfiles=
中的点开始。因此,将其更改为
var argv=
或不带
的内容。或者,如果
argv
是某个对象,则删除
var
infront。

谢谢,这对我的情况非常有帮助。虽然我仍然在寻找发送两个键的方法,这样可以运行几个测试套件。。。也许最好使用一个键var testProfiles={all:'/***/*.js'};