let arr = [
{id: 1, test: 3},
{id: 2, test: 4},
{id: 3, test: 5},
{id: 4, test: 6},
];
// 最大值是1000let num = 1000;
num是最大数为1000,然后根据arr数组里面的test的值之和(3+4+5+6)为18,
1000 / 18 = 55(求整数);
然后需要得到的格式排列的数据如下:
麻烦各位大佬帮忙看看,写了循环,排列的数据格式不对,双循环的排列按顺序的话要怎么写?
let arr = [
{id: 1, test: 3},
{id: 2, test: 4},
{id: 3, test: 5},
{id: 4, test: 6},
];
// 最大值是1000
let num = 1000;
let sumOfTests = arr.reduce((acc, cur) => acc + cur.test, 0); // 计算test的总和
let numInputs = sumOfTests; // 根据test的总和确定输入框的数量
let rangeStep = Math.floor(1000 / sumOfTests); // 每个输入框范围的增量
let container = document.getElementById('input-container');
for (let i = 0; i < numInputs; i++) {
let inputRangeStart = (i * rangeStep) + 1; // 计算每个输入框的起始范围
let inputRangeEnd = inputRangeStart + rangeStep - 1; // 计算每个输入框的结束范围
let randomValue = Math.floor(Math.random() * (inputRangeEnd - inputRangeStart + 1)) + inputRangeStart; // 生成随机值
let input = document.createElement('input');
input.type = 'text';
input.value = randomValue; // 设置输入框的值为随机生成的值
input.readOnly = true; // 可选:使输入框只读
container.appendChild(input); // 将输入框添加到容器中
container.appendChild(document.createElement('br')); // 可选:在每个输入框后添加换行
}
https://segmentfault.com/q/1010000045130749 和这里一样