Node.js - 在字符串之外使用模板文字
Node.js - Using template literals outside of strings
我正在逐行读取文件并将每一行分配给一个键控数组。我的文件每一行都以它们的键开头(例如 name=,text=)。
我想将每一行分配给一个数组,而不必手动输入每个键。
示例:
rd.on('line', function(line) {
line = line.split('=');
let key = line[0];
line.shift();
line = line.join(' ');
array.name = line;
// ... Next loop
line = line.split('=');
let key = line[0];
line.shift();
line = line.join(' ');
array.text = line;
});
这不是我想要的
据我所知,模板字面量只能在 `'d 字符串 (console.log(${key})
) 中使用,尽管我希望有一些方法可以解决这个问题,但我无法通过搜索找到它。
我要工作的代码在这里:
rd.on('line', function(line) {
line = line.split('=');
let key = line[0];
line.shift();
line = line.join(' ');
array.${key} = line;
});
我知道 array.${key}
是无效语法,我希望这里有人对我将如何实现我想要的东西有一些见解。
提前致谢!
使用 array[key]
其中 array is actually a dictionary.
如果我理解正确的话,你想使用对象而不是数组来存储基于特定键的行。
// initiate the Object
let lines = {};
rd.on('line', function(line) {
line = line.split('=');
let key = line[0];
line.shift();
line = line.join(' ');
lines[key] = line;
});
您可以在此处阅读有关对象基础知识的更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
这样可以吗?
const data = {}; // I found name `array` confusing
rd.on('line', function(line) {
const [key, ...rest] = line.split('=');
data[key] = rest.join(' ');
});
虽然有一件事,你正在与 =
分开,但与
(space 字符)合并,但这也许是故意的。
我正在逐行读取文件并将每一行分配给一个键控数组。我的文件每一行都以它们的键开头(例如 name=,text=)。 我想将每一行分配给一个数组,而不必手动输入每个键。
示例:
rd.on('line', function(line) {
line = line.split('=');
let key = line[0];
line.shift();
line = line.join(' ');
array.name = line;
// ... Next loop
line = line.split('=');
let key = line[0];
line.shift();
line = line.join(' ');
array.text = line;
});
这不是我想要的
据我所知,模板字面量只能在 `'d 字符串 (console.log(${key})
) 中使用,尽管我希望有一些方法可以解决这个问题,但我无法通过搜索找到它。
我要工作的代码在这里:
rd.on('line', function(line) {
line = line.split('=');
let key = line[0];
line.shift();
line = line.join(' ');
array.${key} = line;
});
我知道 array.${key}
是无效语法,我希望这里有人对我将如何实现我想要的东西有一些见解。
提前致谢!
使用 array[key]
其中 array is actually a dictionary.
如果我理解正确的话,你想使用对象而不是数组来存储基于特定键的行。
// initiate the Object
let lines = {};
rd.on('line', function(line) {
line = line.split('=');
let key = line[0];
line.shift();
line = line.join(' ');
lines[key] = line;
});
您可以在此处阅读有关对象基础知识的更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
这样可以吗?
const data = {}; // I found name `array` confusing
rd.on('line', function(line) {
const [key, ...rest] = line.split('=');
data[key] = rest.join(' ');
});
虽然有一件事,你正在与 =
分开,但与 (space 字符)合并,但这也许是故意的。