首页 > 解决方案 > 我有一个问题,当我在 JAVASCRIPT 中为每个学生的每个科目生成随机成绩时

问题描述

我有一个问题,当我为每个学生的每个科目生成随机成绩时,但我得到所有学生的成绩都是一样的(对于每个科目)这是我的代码。

var java = {
  name: "Java",
  grade: 0
}

var python = {
  name: "Python",
  grade: 0
}
var arr = {
  name: "arr",
  Subjects: [java, python]
}

var arr1 = {
  name: "arr1",
  Subjects: [java, python]
}

var arrs = [arr, arr1]

function random(min, max) {
  return Math.random() * (max - min) + min
}

function gen(arrs) {
  for (let i = 0; i < 2; i++) {
    for (let j = 0; j < 2; j++) {
      var ran = random(0, 10)
      arrs[i].Subjects[j].grade = ran

    }
  }
}

gen(arrs)
console.log(JSON.stringify(arrs))

标签: javascript

解决方案


您需要准确地复制对象。 https://www.samanthaming.com/tidbits/70-3-ways-to-clone-objects/

var java = {
  name: "Java",
  grade: 0
}

var python = {
  name: "Python",
  grade: 0
}
var arr = {
  name: "arr",
  Subjects: [{...java}, {...python}] //<---------------
}

var arr1 = {
  name: "arr1",
  Subjects: [{...java}, {...python}] //<---------------
}

var arrs = [arr, arr1]

function random(min, max) {
  return Math.random() * (max - min) + min
}

function gen(arrs) {
  for (let i = 0; i < 2; i++) {
    for (let j = 0; j < 2; j++) {
      var ran = random(0, 10)
      arrs[i].Subjects[j].grade = ran

    }
  }
}

gen(arrs)
console.log(JSON.stringify(arrs))


推荐阅读