JavaScript:获取数组中的平均对象?

2024-01-03

我试图想出一种方法来使代码变得简单,使用最少的循环和变量,但我遇到了麻烦。

我想根据“值”获取数组“数字”中的平均对象。我觉得必须有一种数学方法来获得平均值,而无需在另一个循环中找到最接近的平均值。

目前我有这个混乱:

var numbers = [
	{ value: 41 },
	{ value: 19 },
	{ value: 51 },
	{ value: 31 },
	{ value: 11 }
];
// Find average:
var sum = 0;
for (var i = 0; i < numbers.length; i++) {
	sum += numbers[i].value;
}
var average = sum / numbers.length;
// Find closest object to average:
var match, difference;
for (var j = 0; j < numbers.length; j++) {
	const diff = Math.abs(average - numbers[j].value);
	if (difference === undefined || diff < difference) {
		difference = diff;
		match = numbers[j];
	}
}
// Print junk:
console.log("AVERAGE NUMBER: " + average);
console.log("CLOSEST OBJECT: " + match);
console.log("CLOSEST NUMBER: " + match.value);

我需要检索该对象,因为它包含我需要使用的其他信息。

任何帮助将不胜感激!


至少您需要两个循环来获取平均值和最接近的项目,因为您需要在第一次运行中访问所有项目,并且您无法提前存储哪个项目具有最接近的值。

您可以首先获得平均值,然后减少与对象最接近的值。

var numbers = [{ value: 41 }, { value: 19 }, { value: 51 }, { value: 31 }, { value: 11 }, { value: 30 }],
    average = numbers.reduce((sum, { value }) => sum + value, 0) / numbers.length,
    closest = numbers.reduce((a, b) =>
        Math.abs(average - a.value) <= Math.abs(average - b.value)
            ? a
            : b
    );

console.log(average);
console.log(closest);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript:获取数组中的平均对象? 的相关文章

随机推荐

  • 如何在android中建立UDP连接

    我正在尝试在我的之间建立联系galaxy tab and my laptop 因此 我尝试在笔记本电脑上运行服务器活动 在选项卡上运行客户端活动 但它不起作用 这是服务器和客户端代码 错误在哪里 SERVER public class Ma
  • 正则表达式匹配所有 \p{L} 但不匹配 \p{Alpha}

    我怎样才能匹配所有 p L 但不是 p Alpha 在正则表达式中 是否可以实现一个逻辑AND在 Java 正则表达式中 如果答案是肯定的 那么如何实现呢 是的 通过使用否定字符类 http www regular expressions
  • C++:避免​​重复符号链接器错误

    我收到链接器错误 duplicate symbol ZN5ENDF64FileILNS 7MF enumE1EE4readEv in Read cpp o Material cpp o 其中重复的符号名称是 c filt ZN5ENDF64
  • 错误:找不到与给定名称匹配的资源(在“主题”处,值为“@style/AppTheme”)

    给我错误 我尝试了一切 2014 11 15 17 56 06 登录活动 C Users Different workspace LoginActivity AndroidManifest xml 15 错误 错误 找不到与给定名称匹配的资
  • 使用附加变换对同级元素进行风格化

    我一直在努力实现以下目标 而不必声明所有nth of type x li nth of type 2 transform scale 0 9 li nth of type 3 transform scale 0 81 li nth of t
  • Hibernate实体扩展基类,为实体形成的表没有基类中的属性列

    public class BaseEntity Column private String author public BaseEntity String author this author author public String ge
  • “pre”和“post”删除未触发的中间件

    我已经实现了两种不同的方法来删除用户 并且没有一种方法触发 预 和 后 删除中间件 我认为 以下是我的模型文件中的两种不同实现 方法一 var User module exports mongoose model User userSche
  • 向 PostgreSQL 数据库的所有架构中的表添加列

    我有一个 Postgres 8 4 架构 如下所示 My Database gt Schemas gt AccountA gt AccountB gt AccountC gt AccountD gt AccountE gt AccountZ
  • Spring Boot 2.Hikari连接池优化

    我有一个 SpringBoot 应用程序 我正在控制器中进行一些性能测试 我意识到无论我放入控制器的第一个查询是什么 与其他查询相比都需要很长时间 数据库是远程连接 但我无法改变这一点 long t1 System nanoTime men
  • 如何将 YouTube API 持续时间转换为秒? [复制]

    这个问题在这里已经有答案了 为了兴趣 我想转换 YouTube 的视频时长ISO 8601到秒 为了将来证明我的解决方案 我选择了一个很长的视频 http www youtube com watch v 2XwmldWC Ls来测试它 AP
  • 使用 useState React hook 时从状态获取空数据

    我偶然发现了 useState 范围的问题 我正在尝试创建一个动态引导表单 用户可以在其中向组添加更多行 这些行将包含与能源相关的数据 因此 当我添加 2 行并开始更改输入值时 输入环境数据函数触发空数据 最后一个console log 我
  • Node js 对象导出

    有一个非常简单的问题 我找不到关于从 Node js 中的模块导出对象的答案 更具体地说是访问对象属性 这是我导出的对象 exports caravan month july 这是我的主要模块 var caravan require car
  • Invoke-Command 和直接查询的区别

    我目前正在编写一个从服务器查询磁盘信息的脚本 我遇到了一个问题 我真的不知道这里发生了什么 愿你能帮助我 以下代码有效 已替换 ComputerName space1 Invoke Command ComputerName xxxxxx S
  • 测试值是否存在于多个列表中

    我想检查每个列表中是否存在某个值 以下返回True正如预期的那样 但似乎不符合Python风格 正确 更优雅的方法是什么 a 1 2 b 1 3 c 1 4 d 2 5 False in True if 1 in l else False
  • iOS 8.3 打破了自动单元格高度

    长期读者 第一次海报 我在我的应用程序中使用自动单元格高度和自动布局 在 iOS 8 3 和 8 4 中 这一点似乎被打破了 我有一个示例项目 当内置于 8 2 或更低版本时 它可以正常工作 单元格高度由自动布局确定 当内置于 8 3 或
  • PHP gettext() 挪威语

    我正在使用 PHPgettext 简单地将网站转换为其他语言 到目前为止 该解决方案运行良好 英语 匈牙利语 因为我需要将挪威语翻译添加到新网站 当我设置挪威语言环境时setlocale LC ALL nb NO ISO8859 1 get
  • 更改条形图中条形的宽度 (R)

    我想知道如何更改 barchart 函数中条形的宽度 这是代码 rater1 lt c 0 75 0 66 0 73 0 63 barplot rater1 ylim c 0 1 axes TRUE names arg c A B C D
  • gcc给linux ELF添加了哪些功能?

    当用 c 或 asm 链接一个类似 helloworld 的程序时gcc它会将一些内容添加到结果可执行目标文件中 我只知道运行时动态链接器和 start但这些添加的功能是什么样的入口点呢 00000000004003f0 t deregis
  • 如何正确使用 axios params 和数组

    如何向查询字符串中的数组添加索引 我尝试像这样发送数据 axios get myController myAction params storeIds 1 2 3 我得到了这个网址 http localhost api myControll
  • JavaScript:获取数组中的平均对象?

    我试图想出一种方法来使代码变得简单 使用最少的循环和变量 但我遇到了麻烦 我想根据 值 获取数组 数字 中的平均对象 我觉得必须有一种数学方法来获得平均值 而无需在另一个循环中找到最接近的平均值 目前我有这个混乱 var numbers v