我们说我有一个名为" Fruits"的本地文本文件。在文本文件中是这样的:
orange: true
banana: false
apple: true
mango: true
如果我想在变量中保存Orange(真实),我该怎么做?
就像我希望它根据文本文件var orange = true
一样。
答案 0 :(得分:2)
除了处理文件输入/输出之外,您可以在阅读后解析该文件:
var contents = "orange: true \
banana: false \
apple: true \
mango: true";
var lines = contents.match(/[a-z]+: (true|false)/g);
var data = [];
for (i=0;i<lines.length;i++) {
var tokens = lines[i].split(": ");
var key = tokens[0];
var value = tokens[1];
data[key] = (value == "true") ? true : false;
}
console.log(data); // print results to console
首先,您创建一个匹配每一行的正则表达式模式,因此当您使用该模式调用contents.match
时,您会得到一个数组,其中数组的每个元素都是文件的每一行。
然后,循环遍历数组并将每一行拆分为&#34;:&#34;,所以现在你有两个元素:键和值(例如key =&#34; orange&#34; ,value =&#34; true&#34;)。
然而,字符串&#34; true&#34;与布尔值true不同,所以我们使用(value == "true") ? true : false;
将字符串值转换为布尔值,然后将它们转储到关联数组中(在javascript中与对象几乎相同)。
完成所有操作后,您可以使用data["orange"]
获取值true
。
答案 1 :(得分:0)
如果您可以修改源文件,请使用Json轻松访问数据。
var fruits = {
'orange' : true,
'banana' : false,
'apple' : true,
'mango' : true };
var orange = fruits.orange;
您可以在外部json文件中分割水果数据,并在脚本中将其需要。
fruits.js
var fruits = {
'orange' : true,
'banana' : false,
'apple' : true,
'mango' : true };
的script.js
define(['./fruits.js'], function(fruits){
var orange = fruits.orange;
var banana = fruits.banana;
});