Javascript for循环中的UUIDV4未更改值

Javascript for循环中的UUIDV4未更改值,javascript,function,uuid,Javascript,Function,Uuid,我试图创建一个函数来生成一个以UUID为键的对象数组,以及一些嵌套对象ID的UUID 每个游戏都将基于我导入到文件中的模拟对象 函数需要一个运动(字符串)和一个数量(数字),运动(字符串)将被分配给一个键,数量(数字)将决定for循环的迭代次数 使用for循环时,嵌套对象ID的UUID在每次迭代中都会被覆盖 const mockGame = require('../mock-game'); const uuidv4 = require('uuid/v4'); function generate

我试图创建一个函数来生成一个以UUID为键的对象数组,以及一些嵌套对象ID的UUID

每个游戏都将基于我导入到文件中的模拟对象

函数需要一个运动(字符串)和一个数量(数字),运动(字符串)将被分配给一个键,数量(数字)将决定for循环的迭代次数

使用for循环时,嵌套对象ID的UUID在每次迭代中都会被覆盖

const mockGame = require('../mock-game');
const uuidv4 = require('uuid/v4');

function generateMockGames(sport, quantity) {
    let games = []

    for (let i = 0; i < quantity; i++) {
        let game = {}
        let id = uuidv4()

        game[id] = {
            search: mockGame.search,
            query: mockGame.query,
            variables: mockGame.variables,
        }

        game[id].search.eventId = id
        game[id].search.competition.categoryName = sport

        game[id].search.id = id
        game[id].search.competition.categoryName = sport;

        games.push(game);
    }

    return games;
}

const mockFootballGame = generateMockGames('football', 3);
输出为:

[
  {
    '286c1911-b155-4197-bbde-64dba0b304fe': {
       search: {
           eventId: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           name: 'test name',
           competition: {
               categoryName: 'football'
           }
      },
      query: {
           id: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           competition: {
               categoryName: 'football'
           }
      },
      variables: {
           name: 'test name'
      }
  },
  {
    '082a46a6-4dde-433d-8011-9e94a5ee79ff': {
       search: {
           eventId: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           name: 'test name',
           competition: {
               categoryName: 'football'
           }
      },
      query: {
           id: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           competition: {
               categoryName: 'football'
           }
      },
      variables: {
           name: 'test name'
      }
  },
  {
    'ba911751-3ea3-40ab-9bec-c525ab2a07b9': {
       search: {
           eventId: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           name: 'test name',
           competition: {
               categoryName: 'football'
           }
      },
      query: {
           id: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           competition: {
               categoryName: 'football'
           }
      },
      variables: {
           name: 'test name'
      }
  }
]


您正在将循环中的
mockGame
的子对象指定给条目,而不复制它们。因此,在循环中使用新的uuid覆盖
mockGame.query.id
等,然后将
mockGame.query
对象作为一个整体分配给输出。

Ho关于尝试:
const uuid=require('uuid')
然后调用
uuid.v4()
?谢谢!这就是问题所在
[
  {
    '286c1911-b155-4197-bbde-64dba0b304fe': {
       search: {
           eventId: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           name: 'test name',
           competition: {
               categoryName: 'football'
           }
      },
      query: {
           id: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           competition: {
               categoryName: 'football'
           }
      },
      variables: {
           name: 'test name'
      }
  },
  {
    '082a46a6-4dde-433d-8011-9e94a5ee79ff': {
       search: {
           eventId: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           name: 'test name',
           competition: {
               categoryName: 'football'
           }
      },
      query: {
           id: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           competition: {
               categoryName: 'football'
           }
      },
      variables: {
           name: 'test name'
      }
  },
  {
    'ba911751-3ea3-40ab-9bec-c525ab2a07b9': {
       search: {
           eventId: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           name: 'test name',
           competition: {
               categoryName: 'football'
           }
      },
      query: {
           id: 'ba911751-3ea3-40ab-9bec-c525ab2a07b9',
           competition: {
               categoryName: 'football'
           }
      },
      variables: {
           name: 'test name'
      }
  }
]