尝试使用条件求和对象数组

华丽

假设我有一个包含以下对象的数组:

{ home: 0, away: 1, value: 7.371215599659567 }
{ home: 0, away: 2, value: 8.216563231723296 }
{ home: 0, away: 3, value: 6.168310325432516 }
{ home: 0, away: 4, value: 3.5073431380070055 }
{ home: 0, away: 5, value: 1.6104197237111348 }
{ home: 0, away: 6, value: 0.6215879547521032 }
{ home: 1, away: 0, value: 3.6824984689062354 }
{ home: 1, away: 1, value: 8.276413244141352 }
{ home: 1, away: 2, value: 9.393263752817953 }
{ home: 1, away: 3, value: 7.174679043260096 }
{ home: 1, away: 4, value: 4.146565482578415 }
{ home: 1, away: 5, value: 1.9328356809373288 }
{ home: 1, away: 6, value: 0.7563380262857585 }
{ home: 2, away: 0, value: 2.097379162309316 }
{ home: 2, away: 1, value: 4.796821176334703 }
{ home: 2, away: 2, value: 5.534669783150271 }
{ home: 2, away: 3, value: 4.2926916030788105 }
{ home: 2, away: 4, value: 2.515879239794918 }
{ home: 2, away: 5, value: 1.187567428237771 }
{ home: 2, away: 6, value: 0.4699201039387404 }
{ home: 3, away: 0, value: 0.8211845706155819 }
{ home: 3, away: 1, value: 1.9075353125788463 }
{ home: 3, away: 2, value: 2.2325407930142736 }
{ home: 3, away: 3, value: 1.7539581905097126 }
{ home: 3, away: 4, value: 1.0397854130494248 }
{ home: 3, away: 5, value: 0.49576148435142064 }
{ home: 3, away: 6, value: 0.19789157500581256 }
{ home: 4, away: 0, value: 0.24773516000500195 }
{ home: 4, away: 1, value: 0.5830691164647543 }
{ home: 4, away: 2, value: 0.6904477295864787 }
{ home: 4, away: 3, value: 0.5480588412313669 }
{ home: 4, away: 4, value: 0.3278306643240631 }
{ home: 4, away: 5, value: 0.15752158873111574 }
{ home: 4, away: 6, value: 0.06329504444770173 }
{ home: 5, away: 0, value: 0.061151126935764334 }
{ home: 5, away: 1, value: 0.14545542986663187 }
{ home: 5, away: 2, value: 0.17383966843362755 }
{ home: 5, away: 3, value: 0.13909400923467197 }
{ home: 5, away: 4, value: 0.08377178524032308 }
{ home: 5, away: 5, value: 0.040486670771772315 }
{ home: 5, away: 6, value: 0.016348423714773092 }
{ home: 6, away: 0, value: 0.012806909587366471 }
{ home: 6, away: 1, value: 0.030713983064227724 }
{ home: 6, away: 2, value: 0.0369671174487187 }
{ home: 6, away: 3, value: 0.029756524980091948 }
{ home: 6, away: 4, value: 0.018012700795413502 }
{ home: 6, away: 5, value: 0.008742842144856435 }
{ home: 6, away: 6, value: 0.00354304640928744 }

我想对所有home大于0且away小于的值求和home,所以我这样做了:

let matrix = [
  { home: 0, away: 0, value: 3.3406433795989217 },
  { home: 0, away: 1, value: 7.371215599659567 },
  { home: 0, away: 2, value: 8.216563231723296 },
  { home: 0, away: 3, value: 6.168310325432516 },
  { home: 0, away: 4, value: 3.5073431380070055 },
  { home: 0, away: 5, value: 1.6104197237111348 },
  { home: 0, away: 6, value: 0.6215879547521032 },
  { home: 1, away: 0, value: 3.6824984689062354 },
  { home: 1, away: 1, value: 8.276413244141352 },
  { home: 1, away: 2, value: 9.393263752817953 },
  { home: 1, away: 3, value: 7.174679043260096 },
  { home: 1, away: 4, value: 4.146565482578415 },
  { home: 1, away: 5, value: 1.9328356809373288 },
  { home: 1, away: 6, value: 0.7563380262857585 },
  { home: 2, away: 0, value: 2.097379162309316 },
  { home: 2, away: 1, value: 4.796821176334703 },
  { home: 2, away: 2, value: 5.534669783150271 },
  { home: 2, away: 3, value: 4.2926916030788105 },
  { home: 2, away: 4, value: 2.515879239794918 },
  { home: 2, away: 5, value: 1.187567428237771 },
  { home: 2, away: 6, value: 0.4699201039387404 },
  { home: 3, away: 0, value: 0.8211845706155819 },
  { home: 3, away: 1, value: 1.9075353125788463 },
  { home: 3, away: 2, value: 2.2325407930142736 },
  { home: 3, away: 3, value: 1.7539581905097126 },
  { home: 3, away: 4, value: 1.0397854130494248 },
  { home: 3, away: 5, value: 0.49576148435142064 },
  { home: 3, away: 6, value: 0.19789157500581256 },
  { home: 4, away: 0, value: 0.24773516000500195 },
  { home: 4, away: 1, value: 0.5830691164647543 },
  { home: 4, away: 2, value: 0.6904477295864787 },
  { home: 4, away: 3, value: 0.5480588412313669 },
  { home: 4, away: 4, value: 0.3278306643240631 },
  { home: 4, away: 5, value: 0.15752158873111574 },
  { home: 4, away: 6, value: 0.06329504444770173 },
  { home: 5, away: 0, value: 0.061151126935764334 },
  { home: 5, away: 1, value: 0.14545542986663187 },
  { home: 5, away: 2, value: 0.17383966843362755 },
  { home: 5, away: 3, value: 0.13909400923467197 },
  { home: 5, away: 4, value: 0.08377178524032308 },
  { home: 5, away: 5, value: 0.040486670771772315 },
  { home: 5, away: 6, value: 0.016348423714773092 },
  { home: 6, away: 0, value: 0.012806909587366471 },
  { home: 6, away: 1, value: 0.030713983064227724 },
  { home: 6, away: 2, value: 0.0369671174487187 },
  { home: 6, away: 3, value: 0.029756524980091948 },
  { home: 6, away: 4, value: 0.018012700795413502 },
  { home: 6, away: 5, value: 0.008742842144856435 },
  { home: 6, away: 6, value: 0.00354304640928744 }
];

let c = matrix.reduce((acc, curr) => {
    return acc += (acc.home > 0 && curr.away < acc.home) ? acc.value + curr.value : 0;
});
   console.log(c);

但是脚本返回[object Object]我做错了什么?

舒布

您需要初始化acc,有0。也有一些逻辑错误,我已经改正了改变acccurr。看看

let matrix = [{
    home: 0,
    away: 0,
    value: 3.3406433795989217
  },
  {
    home: 0,
    away: 1,
    value: 7.371215599659567
  },
  {
    home: 0,
    away: 2,
    value: 8.216563231723296
  },
  {
    home: 0,
    away: 3,
    value: 6.168310325432516
  },
  {
    home: 0,
    away: 4,
    value: 3.5073431380070055
  },
  {
    home: 0,
    away: 5,
    value: 1.6104197237111348
  },
  {
    home: 0,
    away: 6,
    value: 0.6215879547521032
  },
  {
    home: 1,
    away: 0,
    value: 3.6824984689062354
  },
  {
    home: 1,
    away: 1,
    value: 8.276413244141352
  },
  {
    home: 1,
    away: 2,
    value: 9.393263752817953
  },
  {
    home: 1,
    away: 3,
    value: 7.174679043260096
  },
  {
    home: 1,
    away: 4,
    value: 4.146565482578415
  },
  {
    home: 1,
    away: 5,
    value: 1.9328356809373288
  },
  {
    home: 1,
    away: 6,
    value: 0.7563380262857585
  },
  {
    home: 2,
    away: 0,
    value: 2.097379162309316
  },
  {
    home: 2,
    away: 1,
    value: 4.796821176334703
  },
  {
    home: 2,
    away: 2,
    value: 5.534669783150271
  },
  {
    home: 2,
    away: 3,
    value: 4.2926916030788105
  },
  {
    home: 2,
    away: 4,
    value: 2.515879239794918
  },
  {
    home: 2,
    away: 5,
    value: 1.187567428237771
  },
  {
    home: 2,
    away: 6,
    value: 0.4699201039387404
  },
  {
    home: 3,
    away: 0,
    value: 0.8211845706155819
  },
  {
    home: 3,
    away: 1,
    value: 1.9075353125788463
  },
  {
    home: 3,
    away: 2,
    value: 2.2325407930142736
  },
  {
    home: 3,
    away: 3,
    value: 1.7539581905097126
  },
  {
    home: 3,
    away: 4,
    value: 1.0397854130494248
  },
  {
    home: 3,
    away: 5,
    value: 0.49576148435142064
  },
  {
    home: 3,
    away: 6,
    value: 0.19789157500581256
  },
  {
    home: 4,
    away: 0,
    value: 0.24773516000500195
  },
  {
    home: 4,
    away: 1,
    value: 0.5830691164647543
  },
  {
    home: 4,
    away: 2,
    value: 0.6904477295864787
  },
  {
    home: 4,
    away: 3,
    value: 0.5480588412313669
  },
  {
    home: 4,
    away: 4,
    value: 0.3278306643240631
  },
  {
    home: 4,
    away: 5,
    value: 0.15752158873111574
  },
  {
    home: 4,
    away: 6,
    value: 0.06329504444770173
  },
  {
    home: 5,
    away: 0,
    value: 0.061151126935764334
  },
  {
    home: 5,
    away: 1,
    value: 0.14545542986663187
  },
  {
    home: 5,
    away: 2,
    value: 0.17383966843362755
  },
  {
    home: 5,
    away: 3,
    value: 0.13909400923467197
  },
  {
    home: 5,
    away: 4,
    value: 0.08377178524032308
  },
  {
    home: 5,
    away: 5,
    value: 0.040486670771772315
  },
  {
    home: 5,
    away: 6,
    value: 0.016348423714773092
  },
  {
    home: 6,
    away: 0,
    value: 0.012806909587366471
  },
  {
    home: 6,
    away: 1,
    value: 0.030713983064227724
  },
  {
    home: 6,
    away: 2,
    value: 0.0369671174487187
  },
  {
    home: 6,
    away: 3,
    value: 0.029756524980091948
  },
  {
    home: 6,
    away: 4,
    value: 0.018012700795413502
  },
  {
    home: 6,
    away: 5,
    value: 0.008742842144856435
  },
  {
    home: 6,
    away: 6,
    value: 0.00354304640928744
  }
];

let c = matrix.reduce((acc, curr) => {
  return acc += (curr.home > 0 && curr.away < curr.home) ? curr.value : 0;
}, 0);
console.log(c);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章