Javascript 如何从变量向JSON对象添加索引

Javascript 如何从变量向JSON对象添加索引,javascript,node.js,json,Javascript,Node.js,Json,我有一个包含JSON数组的文件列表: let rawTopTeams = fs.readFileSync('topTeams.json'); let topTeams = JSON.parse(rawTopTeams); let allResults = []; topTeams.teams.forEach(function(value){ teamId = value.id; let resultsJson = fs.readFileSync('team '+ teamId +

我有一个包含JSON数组的文件列表:

let rawTopTeams = fs.readFileSync('topTeams.json');
let topTeams = JSON.parse(rawTopTeams);
let allResults = [];
topTeams.teams.forEach(function(value){
    teamId = value.id;
    let resultsJson = fs.readFileSync('team '+ teamId +'.json');
    let resultsParsed = JSON.parse(resultsJson); 

// I want to combine them into a unique JSON, and I want to add the file name as a key: 

    allResults[teamId] = resultsParsed;
问题是这不起作用。已尝试执行teamId.toString(),但未更改结果(对于teamId=6137):

[
,
[
{
信息在此
},
]
]

我如何组合所有这些JSON文件,并在它们唯一的ID下组织它们,以便以后可以找到它们?

您需要做的就是创建一个对象哈希,其中键是团队ID

    let rawTopTeams = fs.readFileSync('topTeams.json');
    let topTeams = JSON.parse(rawTopTeams);
    let allResults = {}; // Notice I changed this to object
    topTeams.teams.forEach(function(value){
        teamId = value.id;
        let resultsJson = fs.readFileSync('team '+ teamId +'.json');
        let resultsParsed = JSON.parse(resultsJson); 

        // This will now add resultsParsed as a subobject of key teamId under allResults object
        allResults[teamId] = resultsParsed;

.这个问题我不太清楚,但如果我理解正确,你最好选择使用
reduce
;可能类似于以下内容

let rawTopTeams = fs.readFileSync('topTeams.json');
let topTeams = JSON.parse(rawTopTeams);
let allResults = topTeams.teams.reduce((acc, team) => {
  let resultsJson = fs.readFileSync('team '+ team.id +'.json');
  acc[team.id] = JSON.parse(resultsJson);
  return acc
}, {});

编辑后添加。
[]
是数组语法,应该有数字索引。
value.id
是一个数字吗?我怀疑你在追求一个物体。这就像
let allResults={};allResults.stuff=resultsJson;allResults[teamId]=resultsParsedteam WhateverTeamId.json
的文件存在吗。。。。我怀疑这个空间有问题
let rawTopTeams = fs.readFileSync('topTeams.json');
let topTeams = JSON.parse(rawTopTeams);
let allResults = topTeams.teams.reduce((acc, team) => {
  let resultsJson = fs.readFileSync('team '+ team.id +'.json');
  acc[team.id] = JSON.parse(resultsJson);
  return acc
}, {});