当前位置: 首页 > 知识库问答 >
问题:

javascript - js处理数据?

呼延骏俊
2024-08-06
let arr = [  
    {id: 1, test: 3},  
    {id: 2, test: 4},  
    {id: 3, test: 5},  
    {id: 4, test: 6},  
];  

// 最大值是1000
let 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')); // 可选:在每个输入框后添加换行  
}

共有1个答案

施彬郁
2024-08-06

https://segmentfault.com/q/1010000045130749 和这里一样

    // 将 600 分成 20 份,第一份为 1-30,第二份为 31-60
    num = 600;
    numPer = 30;
    res = Array.from({ length: num / numPer }, (_, i) => {
    return `${i * numPer + 1}-${(i + 1) * numPer}`;
    });
    arr = [
    { id: 1, test: 5 },
    { id: 2, test: 4 },
    { id: 3, test: 5 },
    { id: 4, test: 6 },
    ];
    // 根据 arr 将 res 分为四列,第一列有5个,包含 1-30、121-150、241-270、361-390、481-510
    result = Array.from({ length: 4 },()=>[]);
    // 需要注意第二列的个数,不能超过,放不下就顺延
    while (res.length) {
    for (let i = 0; i < result.length; i++) {
        if (arr[i]?.test > result[i]?.length) {
        result[i].push(res.shift());
        }
    }
    }
    console.log(result);
 类似资料:
  • 右下角有一个按钮来控制滑块位置, 具体代码如下 但是当用户连续点击的时候页面就会卡死, 这个情况可以怎么进行防抖优化? debounce 是原先封装的方法, 但这个方法并不适用这个需求 debounce 是延迟执行, 也就是如果调这个方法传1秒, 那我点击这个按钮后1秒才开始执行里面的方法 想稍微改一下, 变成先执行, 后延迟1秒 (先执行$("html").animate, 并且在执行1期间将$

  • js:求一个数据处理方法,例如上述例子, tableList处理之后,可以得到 之前有如下方案 但是不能兼容account.t_sub_account_.*的场景,哪位大佬可以帮忙完善下吗?

  • 处理成 [11,1201,1304,1305]

  • (自己模拟的数据效果) 如上路径动画,目前的问题是运行的坐标数据是依照地图来的 需要转换为画布能够展示的范围,但运行数据之前差别大部分情况下都很小 我要怎样处理会合适一点? help大佬们

  • id相同,ass里的数据根据 id相同,unicode 相同 ,把pearPlanFlag有属性的值加到第一个id出现的情况

  • 本文向大家介绍浅谈JS中json数据的处理,包括了浅谈JS中json数据的处理的使用技巧和注意事项,需要的朋友参考一下 1、 json数据结构(对象和数组) json对象:var obj = {"name":"xiao","age":12}; json数组:var objArray = [{"name":"xiao","age":12},{"name":"xiao","age":12}]; 2、

  • js数据结构处理 后台返回的接口数据如下 想把res.result变成如下格式 js数据结构处理后台返回的接口数据如下 以此类推.... 没有思路,求指点

  • 这看起来真的很奇怪。。。 我有一些JSON。。。 但是当我试图解析它并使用它时。。。 什么都没有出现,但是如果我只是做$("p"). text(json);它告诉我这是一个对象,我可以看到JSON在Firebug中是正确的,有什么想法吗?