zhairy 发表于 2022-10-12 17:50

JS 数组 算法求解,一个类矩阵 求子数组的 近平均整数数组的算法

本帖最后由 zhairy 于 2022-10-12 17:56 编辑

现有两个 变量数组
const obja = [{ a: 6, t: 32 }]
const objb = [
{ s: 'a', t: 5, chart: [] },
{ s: 'a', t: 4, chart: [] },
{ s: 'a', t: 5, chart: [] },
{ s: 'a', t: 6, chart: [] },
{ s: 'a', t: 6, chart: [] },
{ s: 'a', t: 6, chart: [] },
]
或者是这样的

const obja = [{ a: 3, t: 14},{ b: 2, t: 12},{ c: 1, t: 6}]
const objb = [
{ s: 'a', t: 5, chart: [] },
{ s: 'a', t: 4, chart: [] },
{ s: 'a', t: 5, chart: [] },
{ s: 'b', t: 6, chart: [] },
{ s: 'b', t: 6, chart: [] },
{ s: 'c', t: 6, chart: [] },
]
现在希望经过计算能得到这样的 得到类似的结果

const a1 = //总和为 objb中对应的 t
const a2 =
const a3 =
const a4 =
const a5 =
const a6 =

或者这样的希望得到的结果是各个子数组 每个成员位置加起来的和   尽量是靠近 总体和的 整数平均数

const a1 = //总和为 objb中对应的 t
const a2 =
const a3 =
const b1 =
const b2 =
const b3 =


这个是个人 尝试计算的 代码 ,结果很不如意 ,有没有精通的大神 帮忙下 ,拜谢 !
const obja = [{ a: 6, t: 32 }]
const objb = [
{ s: 'a', t: 5, chart: [] },
{ s: 'a', t: 4, chart: [] },
{ s: 'a', t: 5, chart: [] },
{ s: 'a', t: 6, chart: [] },
{ s: 'a', t: 6, chart: [] },
{ s: 'a', t: 6, chart: [] },
]

function getData(len, v) {
let data = [];
let total = v
let avg = Math.floor(total / len);
let remainder = total % len;
for (let i = 0; i <= len; i++) {
    if (remainder !== 0) {

      data.push(avg + 1)
      remainder--;
    } else {
      data.push(avg)
    }
}
return data;
}
let a = 0
let data = [];
function bb() {
objb.map(e => {
    const i = obja.findIndex(el => el)
    if (!a) {
      a = obja
    }
    if (obja == 1) {
      e.chart = getData(9, e.t)
    } else {
      let temp = []
      temp = getData(9, e.t)
      if (a == obja) {
      data = getData(9, obja.t)
      e.chart = temp
      temp.forEach((item, x) => { data = data - item })
      } else {
      temp.forEach((item, x) => {
          data = data - item
         
       /*   if (data >= item) {
            data = data - item
          } else {
            console.log(" data", data);
            item = data
            temp += (item - data)
            data = 0
          }*/
      })
      console.log("temp", temp);
      e.chart = temp
      }
    }
    a--
})
console.log('aaa', objb)
}

这个 数据 主要用来echarts 的批量展示

zhairy 发表于 2022-10-12 19:29

没人么 ?{:1_907:}

cwsctrl 发表于 2022-10-12 19:29

obja好像没啥用{:1_904:}

zhairy 发表于 2022-10-12 19:30

cwsctrl 发表于 2022-10-12 19:29
obja好像没啥用

有用的,这个只是 代码的计算部分,obja   没贴出来的 代码 调用的

cwsctrl 发表于 2022-10-12 23:36

康康私信
页: [1]
查看完整版本: JS 数组 算法求解,一个类矩阵 求子数组的 近平均整数数组的算法