javascript - 我有一个问题,当我在 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))
解决方案
您需要准确地复制对象。 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))
推荐阅读
- java - 如何删除或隐藏 Textarea 的边框?
- javascript - 如何让文本动画看起来好像它在另一层下
- javascript - 用 axios 对象制作组件
- python - 在 scrapy 中使用 try/except 子句无法获得所需的结果
- node.js - 如何使用 React Router 从 React.js 的子路径修复错误的代理重定向?
- mongodb - 新手获取返回where查询的_id
- angular - 角垫形式场中心对齐
- django - 在 django 中制作一个 dialogflow webhook 接收器
- python - RegEx 用于忽略字符串中的括号
- ruby-on-rails - 通过对 has_many 关系计数的 rails 查询