1个回答

test
2024-08-11
横向计算
function createListData(list, num = 600) {
let count = list.reduce((n, i) => n + i.test, 0)
let step = num / count | 0 // 不一定能整除,这里向下取整
let data = list.map((item, index) => {
return Array.from({length: item.test}).map(citem => {
return {
min: 0,
max: 0
}
})
})
let max = Math.max(...list.map(i => i.test))
let value = 0, idx = 1
for (let index = 0; index < max; index++) {
data.forEach(item => {
if(item[index]){
item[index].index = idx++
item[index].min = value + 1
value += step
item[index].max = num < value + step ? num : value
}
})
}
return data
}
let data = createListData(arr, 605)
竖向计算
function createListData(list, num = 600) {
let count = list.reduce((n, i) => n + i.test, 0)
let step = num / count | 0 // 不一定能整除,这里向下取整
let value = 0, idx = 1
let data = list.map((item, index) => {
return Array.from({length: item.test}).map(citem => {
let start = value
value += step
return {
index: idx++,
min: start + 1,
max: num < value + step ? num : value
}
})
})
return data
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容