我正在尝试从这个module.export数组中检索值,但我不能。你能救我吗?
这是words.js
module.exports = {
"word1": 'phrase1',
"word2": 'phrase2',
"word3": 'phrase3',
"word4": 'phrase4',
"word5": 'phrase5'
};
在main.js上我正在打电话
var recipes = require('./words');
现在,我如何检索要在main.js
中使用的words.js的值我的意思是,如果我想获得一个随机数[3],那么显示各自的值[phrase4]?
这是我试图做的,但它根本不起作用。
var factIndex = Math.floor(Math.random() * recipes.length);
var randomFact = recipes[factIndex];
请帮忙。
谢谢!
答案 0 :(得分:0)
据我所知,module.exports用于函数。模块是可以在另一个文件中调用的函数的容器。
您想要的是存储字符串列表并迭代其内容。我建议使用一个数组,它可以让你循环或使用随机数[3]访问值或创建一个json文件。
答案 1 :(得分:0)
您应该考虑导出数组。 像这样举例如:
module.exports = {
words: ['phrase1','phrase2','phrase3',...]
};
然后像这样使用它:
var words = require('./path/to/file').words;
//You can now loop it and you have a .length property
words.map(function(word){ console.log(word) })
console.log(words.length)
//getting a specific value is also done by the index:
var myFirstPhrase = words[0];
或者,如果您的文件只导出该单词列表,您甚至可以删除周围的对象并直接导出数组:
module.exports = ['phrase1','phrase2', ...];
然后像这样导入:
var words = require('./path/to/file');
答案 2 :(得分:0)
您可以使用键Object.keys()的对象数组从对象数组中检索随机属性值:
<强> words.js 强>:
module.exports = {
"word1": 'phrase1',
"word2": 'phrase2',
"word3": 'phrase3',
"word4": 'phrase4',
"word5": 'phrase5'
};
<强> main.js 强>:
var recipes = require('./words'),
recipesKeysArr = Object.keys(recipes),
factIndex = Math.floor(Math.random() * recipesKeysArr.length),
randomFact = recipes[recipesKeysArr[factIndex]];
<强>演示强>:
var recipes = {"word1": 'phrase1',"word2": 'phrase2',"word3": 'phrase3',"word4": 'phrase4',"word5": 'phrase5'},
recipesKeysArr = Object.keys(recipes),
factIndex = Math.floor(Math.random() * recipesKeysArr.length),
randomFact = recipes[recipesKeysArr[factIndex]];
console.log(randomFact);
&#13;