将数组中的一个数组的条目推送到数组中的另一个数组 JavaScript?
Pushing entries from an array within an array to another array within an array for JavaScript?
我有一个信息数组,再分为多个子数组。我希望然后应用修饰符,它们也是数组中的数组。
var legonisUnits = [
"/pa/units/land/aa_missile_vehicle/aa_missile_vehicle.json",
"/pa/units/land/assault_bot_adv/assault_bot_adv.json",
];
var foundationUnits = [
"/pa/units/air/air_factory_adv/air_factory_adv.json",
"/pa/units/air/air_factory/air_factory.json",
];
var factionUnits = [
legonisUnits,
foundationUnits,
];
var legonisCost = [];
var foundationCost = [];
var effeciencyTech = [legonisCost, foundationCost];
var costBuff = function(faction) {
_.forEach(faction, function(unit) {
_.forEach(unit, function(unit) {
effeciencyTech[0].push({
file: unit,
path: "build_metal_cost",
op: "multiply",
value: 0.75,
})
})
})
}
_.forEach(factionUnits, costBuff(factionUnits))
我遇到的问题是,每当我在 factionUnits
.
中切换数组时,如何更改被推送到 efficiencyTech
中的数组
如果你使用数组迭代器的第二个参数forEach
- (下面代码中的i
),那么你的任务就变得简单多了:
var units = [[], []]; // replace with your own init
var efficiency = [[], []];
units.forEach((faction, i) => {
efficiency[i] = faction.map(unit => ({
file: unit,
path: 'build_metal_cost',
op: 'multiply',
value: '0.75'
})
));
_.forEach()
中的回调函数接收数组索引作为第二个参数。您可以使用它来索引 effeciancyTech
.
您也不应该在 costBuff
中调用 _.forEach()
。您已经在各个派系之间循环,因为您在 _.forEach()
.
中调用 costBuff
var legonisUnits = [
"/pa/units/land/aa_missile_vehicle/aa_missile_vehicle.json",
"/pa/units/land/assault_bot_adv/assault_bot_adv.json",
];
var foundationUnits = [
"/pa/units/air/air_factory_adv/air_factory_adv.json",
"/pa/units/air/air_factory/air_factory.json",
];
var factionUnits = [
legonisUnits,
foundationUnits,
];
var legonisCost = [];
var foundationCost = [];
var effeciencyTech = [legonisCost, foundationCost];
var costBuff = function(faction, index) {
_.forEach(faction, function(unit) {
effeciencyTech[index].push({
file: unit,
path: "build_metal_cost",
op: "multiply",
value: 0.75,
})
})
}
_.forEach(factionUnits, costBuff)
console.log(effeciencyTech);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.19/lodash.min.js"></script>
我有一个信息数组,再分为多个子数组。我希望然后应用修饰符,它们也是数组中的数组。
var legonisUnits = [
"/pa/units/land/aa_missile_vehicle/aa_missile_vehicle.json",
"/pa/units/land/assault_bot_adv/assault_bot_adv.json",
];
var foundationUnits = [
"/pa/units/air/air_factory_adv/air_factory_adv.json",
"/pa/units/air/air_factory/air_factory.json",
];
var factionUnits = [
legonisUnits,
foundationUnits,
];
var legonisCost = [];
var foundationCost = [];
var effeciencyTech = [legonisCost, foundationCost];
var costBuff = function(faction) {
_.forEach(faction, function(unit) {
_.forEach(unit, function(unit) {
effeciencyTech[0].push({
file: unit,
path: "build_metal_cost",
op: "multiply",
value: 0.75,
})
})
})
}
_.forEach(factionUnits, costBuff(factionUnits))
我遇到的问题是,每当我在 factionUnits
.
efficiencyTech
中的数组
如果你使用数组迭代器的第二个参数forEach
- (下面代码中的i
),那么你的任务就变得简单多了:
var units = [[], []]; // replace with your own init
var efficiency = [[], []];
units.forEach((faction, i) => {
efficiency[i] = faction.map(unit => ({
file: unit,
path: 'build_metal_cost',
op: 'multiply',
value: '0.75'
})
));
_.forEach()
中的回调函数接收数组索引作为第二个参数。您可以使用它来索引 effeciancyTech
.
您也不应该在 costBuff
中调用 _.forEach()
。您已经在各个派系之间循环,因为您在 _.forEach()
.
costBuff
var legonisUnits = [
"/pa/units/land/aa_missile_vehicle/aa_missile_vehicle.json",
"/pa/units/land/assault_bot_adv/assault_bot_adv.json",
];
var foundationUnits = [
"/pa/units/air/air_factory_adv/air_factory_adv.json",
"/pa/units/air/air_factory/air_factory.json",
];
var factionUnits = [
legonisUnits,
foundationUnits,
];
var legonisCost = [];
var foundationCost = [];
var effeciencyTech = [legonisCost, foundationCost];
var costBuff = function(faction, index) {
_.forEach(faction, function(unit) {
effeciencyTech[index].push({
file: unit,
path: "build_metal_cost",
op: "multiply",
value: 0.75,
})
})
}
_.forEach(factionUnits, costBuff)
console.log(effeciencyTech);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.19/lodash.min.js"></script>