学习一下Array.reduce函数的使用

news/2024/9/28 23:09:20

今天面试遇到一个问题,如下:

实现一个函数,把 [{ name: "Alice", age: 10 }, { name: "Bob", age: 20 }] 转换成 { Alice: 10, Bob: 20 }

然后我用for循环加Object.values的方法实现了,面试这时候问,能不能用reduce实现?答,当然是可以的,可惜我对reduce使用的并不熟练,现在来学习一下。

 

下面是MDN给出的定义:

reduce方法对数组中的每个元素按按顺序执行一个提供的reducer函数,每一次运行reducer函数会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个元素返回。

它的第一个参数是一个函数,第二个参数是初始值。如果不传入第二个参数,那么数组索引为0的元素将被作为初始值,迭代器将从第二个元素开始执行。

reducer可以理解为“归约”:在计算机科学和编程中,特别是在函数式编程里,reducer 是一种特定类型的函数,它用于将集合中的元素通过某种操作累积起来得到一个单一的结果。这个过程通常称为“归约”(reduce)

 

 下面是面试题的答案

function transformArrayToObject(arr) {return arr.reduce((accumulator, currentValue) => {// 使用当前元素的name作为键,age作为值添加到累加器对象中accumulator[currentValue.name] = currentValue.age;return accumulator;}, {});  // 初始值为一个空对象
}// 测试数据
const array = [{ name: "Alice", age: 10 },{ name: "Bob", age: 20 }
];// 调用函数并打印结果
const result = transformArrayToObject(array);
console.log(result);  // 输出: { Alice: 10, Bob: 20 }

 

使用场景1:数组求和

const array1 = [1, 2, 3, 4];// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce((accumulator, currentValue) => accumulator + currentValue,initialValue,
);console.log(sumWithInitial);
// Expected output: 10

 

 使用场景2:展开嵌套数组

const flattened = [[1, 2], [3, 4], [5, 6]].reduce((accumulator, currentValue) => accumulator.concat(currentValue), [])

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65955.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

PbootCMS后台访问地址及默认帐号密码

如果你在使用PbootCMS时遇到关于后台默认账号密码的问题,以下是一些关键信息: PbootCMS 后台默认访问路径访问路径:你的域名/admin.php将“你的域名”替换为实际的网址。后台初始账号密码初始账号:admin 初始密码:admin示例 假设你的域名为 example.com,则后台访问路径为…

docker 创建私有仓库,并且设置用户名和密码

1. 拉取仓库 docker pull registry2. 安装密码生成工具 sudo apt-get install apache2-utils3. 生成用户名和密码 htpasswd -Bc /etc/docker/registry/passwords dzq4. 启动仓库docker run -d -p 5000:5000 --restart=always --name registry \-e REGISTRY_AUTH=htpasswd…

PbootCMS简单安装教程 – pbootcms基本使用教程

为了帮助用户顺利安装并使用PbootCMS系统,以下是详细的安装步骤和注意事项: 1. 环境要求PHP版本:PbootCMS系统默认采用SQLite数据库,需要PHP 5.4及以上版本,最新系统需要PHP 7.0及以上版本。 服务器环境:确保服务器环境正确配置,使用PHP环境。2. 安装前的准备环境配置:…

pbootcms目录结构解释说明及权限设置

为了确保PbootCMS能够正常运行,需要对一些关键目录设置正确的权限。以下是具体的目录权限设置说明: 1. 数据库目录 (data) 可写路径:/data 权限:755 或 777 命令:bashchmod 755 /path/to/pbootcms/data2. 运行时目录 (runtime) 及子目录可写路径:/runtime 权限:755 或 7…

pbootcms二次开发必须要了解的后台目录结构

下面是PbootCMS后台目录结构的整理表格,方便二次开发人员参考:目录 描述apps 应用目录 admin 后台应用 api API接口应用 common 公共目录 home 前台应用config 配置目录 config.php 系统配置文件 database.php 数据库配置文件 route.php 自定义路由配置…

pbootcms模板 后台升级程序后导致网站打不开 Parse error: syntax error, unexpec

当你在升级PbootCMS模板后台后遇到网站打不开的问题,并且出现如下错误: Parse error: syntax error, unexpected :, expecting { in /www/wwwroot/****/core/function/helper.php on line 745这通常是因为PHP版本不兼容导致的。PbootCMS 3.2版本要求PHP 7及以上版本。以下是具…

小模型(SLM)的效率、性能和潜力

关于小语言模型 小语言模型(slm)是为在桌面、智能手机和可穿戴设备上进行资源高效部署而设计的。 其目标是使先进的机器智能能够为每个人所使用和负担得起,就像人类认知的普遍性一样。 小语言模型(slm)已经广泛集成到商业设备中。例如,最新的谷歌和三星智能手机内置了大型语言…

PbootCMS上传的缩略图为什么变模糊尺寸还变小了了?

如果你在使用PbootCMS后台发布内容时,发现上传的缩略图在上传成功后变得模糊且尺寸变小,这通常是由于PbootCMS默认的图片尺寸限制导致的。以下是如何解决这个问题的具体步骤: 解决方案打开配置文件打开config目录下的config.php文件。修改缩略图配置在config.php文件中找到缩…