首页 > 解决方案 > 如何从变量向 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 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):

[
  <6137 empty items>,
  [
    {
      INFO HERE
    },
  ]
]

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

标签: javascriptnode.jsjson

解决方案


您需要做的就是创建一个对象散列,其中键是团队 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;

推荐阅读