javascript - 使用连接字符串作为 JavaScript 对象属性名称

标签 javascript gulp

嗯,我需要从数组中获取所有值并将它们放入循环中,但是我无法将值传递给对象的属性名称。知道如何做到这一点吗?

var functionCases = [
    "functions",
    "document.ready",
    "window.load",
    "document.scroll",
    "window.resize"
];

functionCases.forEach(function(i){
    gulp.src(bermuda())
    .pipe(gfi({
        "/* "+ i + " */": "generator/assets/js/" + i + ".js"
    }))
    .pipe(gulp.dest('generator/assets/js'));
});

问题出在这里:"/* "+ i + "*/",Javascript无法将其识别为对象属性的名称...

这是我的整个 Gulp 代码:

var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var concat = require('gulp-concat');
var gfi = require("gulp-file-insert");
var fs = require('fs');

gulp.task('modules', function() {

    var bermuda = function(){
        var fileExist = fs.existsSync("generator/assets/js/modules.js");
        if ( fileExist == true ) {
            var source = "generator/assets/js/modules.js";
            console.log("existe");
        } else{
            var source = "js/modules/modules.js";
            console.log("não existe");
        }
        return source;
    }

    var functionCases = [
        "functions",
        "document.ready",
        "window.load",
        "document.scroll",
        "window.resize"
    ];

    functionCases.forEach(function(i){

        console.log(i);

        gulp.src('js/modules/**/' + i + '.js')
            .pipe(concat('' + i + '.js'))
            .pipe(gulp.dest('generator/assets/js'))
            .on('end',function(){
                fs.exists("generator/assets/js/" + i + ".js", function(exists) {
                    if (exists) {
                        var gfiInput = {};
                        gfiInput["/* "+ i + " */"] = "generator/assets/js/" + i + ".js";
                        gulp.src(bermuda())
                            .pipe(gfi(gfiInput))
                            .pipe(gulp.dest('generator/assets/js'));
                    }
                });
            });

    });
});

最佳答案

尝试更换

functionCases.forEach(function(i){
    gulp.src(bermuda())
    .pipe(gfi({
        "/* "+ i + " */": "generator/assets/js/" + i + ".js"
    }))
    .pipe(gulp.dest('generator/assets/js'));
});

functionCases.forEach(function(i){
    var gfiInput = {};
    gfiInput["/* "+ i + " */"] = "generator/assets/js/" + i + ".js";
    gulp.src(bermuda())
        .pipe(gfi(gfiInput))
        .pipe(gulp.dest('generator/assets/js'));
});

关于javascript - 使用连接字符串作为 JavaScript 对象属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331872/

相关文章:

javascript - 根据同一列表中另一列的条目隐藏 SP 列表中的列

javascript - 通过 JavaScript 访问需要身份验证的页面

javascript - 像 iframe 一样绝对定位

typescript - gulpfile.ts 因任何导入语句而失败

node.js - gulp_jspm 弃用警告

node.js - 使用 http-proxy-middleware 重写路径

svg - 使用 gulp-svg-sprite 生成 SASS mixin?

javascript - 如何将任何数组中的值分隔为多个数组

javascript - 点击后如何调用对象函数

node.js - Mocha - 运行测试 ReferenceError : regeneratorRuntime is not defined