我有一个包含所有拼字游戏字母数量的.txt文件:
A-9, B-2, C-2, D-4, E-12, F-2, G-3, H-2, I-9, J-1, K-1, L-4, M-2, N-6, O-8, P-2, Q-1, R-6, S-4, T-6, U-4, V-2, W-2, X-1, Y-2, Z-1
我试图从这里得到一个对象数组,其中键是字母,值是数字.
我遇到的问题是我试图将密钥设置为数组中的第一个项目(我之前拆分)[A, 9].
我的代码如下.任何提示都会感激不尽:)
import fs from 'fs'
var output = fs.readFileSync('scrabble-quantities.txt', 'utf-8')
.trim()
.split(', ')
.map(item => item.split('-'))
.reduce((quantities, item) => {
quantities.push({
item[0]: item[1]
})
return quantities
}, [])
Run Code Online (Sandbox Code Playgroud)
谢谢
我会使用一个对象而不是一个数组.JS的工作方式更简单,更自然:
// ...
.reduce((quantities, item) => {
quantities[item[0]] = item[1];
return quantities;
}, {});
Run Code Online (Sandbox Code Playgroud)
然后生成的output对象(以JSON表示法):
{
"A": 9,
"B": 2,
// ...
"Z": 1
}
Run Code Online (Sandbox Code Playgroud)
编辑:记住价值类型
如果您希望该值为实际数字,则必须在赋值中解析它:
parseInt(item[1], 10)
Run Code Online (Sandbox Code Playgroud)