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 的批量展示
没人么 ?{:1_907:} obja好像没啥用{:1_904:} cwsctrl 发表于 2022-10-12 19:29
obja好像没啥用
有用的,这个只是 代码的计算部分,obja 没贴出来的 代码 调用的 康康私信
页:
[1]