Javascript 在循环中连接内容文件

Javascript 在循环中连接内容文件,javascript,Javascript,我想循环一个权利列表,并创建一个连接的json数组。 我想循环几个数据数组,并连接用户有权使用的数据数组 const ROOSEVELT = require("./content/roosevelt") // these are .js arrays const AMBITION = require("./content/ambition") const CHAUCER = require ("./content/chaucer") // beginning main function exp

我想循环一个权利列表,并创建一个连接的json数组。 我想循环几个数据数组,并连接用户有权使用的数据数组

const ROOSEVELT = require("./content/roosevelt") // these are .js arrays
const AMBITION = require("./content/ambition")
const CHAUCER = require ("./content/chaucer")

// beginning main function
exports.function = function (searchTerm, searchAuthor, searchQOTD) {

var entitlements = GET_REMOTE.checkEntitlements()

// returns json ["ROOSEVELT", "AMBITION", "CHAUCER"] from API server

var entitled_content = [] //empty target array

entitlements.forEach(function(item, array)

// loop over the list of entitlements

{ //this is where I want to concatenate the constants 
// ROOSEVELT, AMBITION, and CHAUCER
// I need a one liner that adds each constant to the entitled_content array.

;});

// main function continues


您需要允许通过字符串的方式查找您的导入,因为
checkauthorights()
返回的是字符串

一种简单的方法是将此导入添加到
查找
对象:

const ROOSEVELT = require("./content/roosevelt") // these are .js arrays
const AMBITION = require("./content/ambition")
const CHAUCER = require ("./content/chaucer")

const lookup = {
    ROOSEVELT: ROOSEVELT,
    AMBITION: AMBITION,
    CHAUCER: CHAUCER
};
这样做的缺点是,您可以手动维护
查找
对象。如果希望根据导入的文件自动生成此对象,可以使用NPM模块,例如,它将返回此对象供您直接使用

const requireDir = require('require-dir');
const lookup = requireDir('./content');
接下来,当您在字符串数组中循环时,我认为您希望标题为内容的
是一个平面列表。如果是这样,函数就是您想要的

否则,您只需将数据附加到数组中

const ROOSEVELT = require('./content/roosevelt'); // these are .js arrays
const AMBITION = require('./content/ambition');
const CHAUCER = require('./content/chaucer');

const lookup = {
    ROOSEVELT,
    AMBITION,
    CHAUCER,
};

exports.function = function(searchTerm, searchAuthor, searchQOTD) {
    // returns json ["ROOSEVELT", "AMBITION", "CHAUCER"] from API server
    var entitlements = GET_REMOTE.checkEntitlements();

    var entitled_content = [];

    entitlements.forEach(function(item) {
        if (lookup[item]) {
            entitled_content = entitled_content.concat(lookup[item]);
        }
    });
};

请确定您想要的标题内容在JS语法中是什么样子,json数组这个词让我有点困惑[{tags:[“roosevelt]”,文本:“幸福不是目标;它是副产品。--Eleanor roosevelt”,image:{url:“images/”}}]这在第二个roosevelt“SyntaxError:无效对象初始值设定项”中产生了一个错误。Google似乎建议查找对象应该是一个键值对?我使用的是ES6符号,它允许您放弃冒号/值。如果您的节点环境不支持此功能,则可以使用旧语法。我已经编辑了上面的文章,使用了旧的语法。有关更多示例,请参见。