在Javascript中多次向数组中添加多个对象

在Javascript中多次向数组中添加多个对象,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我想将对象的副本放入数组n次,其中n是每个对象的属性,它告诉您需要复制多少次 所以我想我应该做一个循环,对于每个对象,看看它的属性,循环整数的次数 var myArray = {}; var object1 = { "copyMeThisManyTimes": 4, "name": "Sam" } var object2 = { "copyMeThisManyTimes": 2, "name": "Max" } for (i=0; i < this.copy

我想将对象的副本放入数组n次,其中n是每个对象的属性,它告诉您需要复制多少次

所以我想我应该做一个循环,对于每个对象,看看它的属性,循环整数的次数

var myArray = {};
var object1 = {
    "copyMeThisManyTimes": 4,
    "name": "Sam"
}
var object2 = {
    "copyMeThisManyTimes": 2,
    "name": "Max"
}
for (i=0; i < this.copyMeThisManyTimes; i++) {
    myArray.push(this);
}
var myArray={};
var object1={
“复制方法随时”:4,
“姓名”:“山姆”
}
var object2={
“CopyMethismanytime”:2,
“名称”:“最大值”
}
对于(i=0;i
也许
for
循环应该是$each或其他形式,所以“this”是基于某个范围的

背景故事:在我正在编写的游戏中,有些生物对象比其他生物对象更稀有。我想创造一副敌人的牌。某些敌人应该比其他人更经常出现——认为它们是“共同的”。每个对象都有一个稀有属性-此整数将确定将此对象的副本放入数组的次数,以确保更频繁地看到常见的副本。我认为这将是一个很好的实现稀有性的方法,但我完全可以通过Javascript或jQuery(更喜欢vanilla js)使用其他选项

一位朋友提到的另一个选择是,为每个“稀有”类别设置一个单独的数组,并为敌人选择一个随机数,其中更多的数字指向“普通”数组,更少的数字指向“稀有”数组。例如,掷骰子1-4可以从“普通”阵法中选择一个敌人。最好的方法是什么


我确信有一种让人难堪的更简单的方法,所以我提前道歉。:)

你的逻辑没有什么问题。只是一些实现问题

var myArray=[];//数组文字,而不是对象
var object1={
“copyMeThisManyTimes”:4,//缺少引用
“姓名”:“山姆”
}
var object2={
“copyMeThisManyTimes”:2,//同时
“名称”:“最大值”
}
对于(i=0;idocument.write(JSON.stringify(myArray))为避免对象重复,您可以有两个阵列:

  • 一个包含每种对象的实例的对象
  • 另一个包含要根据 骰子卷
例如,如果对象数组的第一个项目是普通项目,则第二个数组中的4个第一个值将为0,因此掷骰子1-4将选择一个普通敌人

只复制索引,而不复制对象

var enemies = [
    {
        name: "max"
    },
    {
        name: "sam"
    }
]
// a dice roll of 1-4 will return "max", a dice roll of 5-6 will return "sam"
var rarity = [0, 0, 0, 0, 1, 1];
selectedIndex = rarity[Math.floor(Math.random() * rarity.length)];
selectedEnemy = enemies[selectedIndex];

有趣的解决方案,我正在查看。谢谢你在我发布后回复得这么快!