gpt4 book ai didi

javascript - 数组中特定元素的组合

转载 作者:行者123 更新时间:2023-11-29 22:57:04 26 4
gpt4 key购买 nike

假设我这样做是因为我的家庭作业。我想为接下来的一周制定某种时间表(6-7 个元素的数组 - 输出结果)。但我有一个问题。我需要弄清楚一个元素如何定位在数组中,而且他的频率必须与用户输入的完全一致。元素必须位于数组中的不同索引处。

我从用户那里得到了那种输入(只是一个例子);

var arrayOfElements = ["el1","el2","el3"];
var el1Frequency = 3;
var el2Frequency = 2;
var el3Frequency = 1;
//output array of schedule (this is just an example)
var finaloutPutArray = ["el1","el2","el3","el1","el2","el1"];

元素el1的索引是0、3、5,基本上,我不希望元素这样重复;

["el1","el1","el2","el3"...];
["el2","el1","el1","el3"];

你能给我一些解决这个问题的想法吗?

我是这样开始的;

var finalSchedule = [];

var totalDaysPerWeek = 6;
for(var i =0; i < totalDaysPerWeek; i++) {
...
}

最佳答案

这是一种模式,请查看我的工作片段:

var arrayOfElements = ["el1","el2","el3"];
var obj = { el1: 3,
el2: 2,
el3: 1};

// First determine the max recurring of an element, this will be the number of cycles fo your loop

// Check key values
var arr = Object.keys(obj).map(function ( key ) { return obj[key]; });

// Get max value
var max = Math.max.apply( null, arr );
var finalArray = [];

// Iterate from 0 to max val
for(i = 0; i < max; i += 1){
// Iterate on array of elements
for(k = 0; k < arrayOfElements.length; k += 1) {
// If config of recurring
if( obj[arrayOfElements[k]] >= i+1 ) {
// Push into array
finalArray.push(arrayOfElements[k]);
}
}
}

console.log(finalArray);

关于javascript - 数组中特定元素的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56460446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com