怎样将对象转换为包含键值对的对象数组?然后又将数组转换为对象?

const formData = {location: 'Park',address: '123 Main St',latitude: '37.7749',longitude: '-122.4194'
};

1、怎样把这个对象转化为一个数组?

2、然后又怎样把转化后的数组再转化回来?

3、怎样将这两个方法单独封装成函数?

方法 1: 将对象转换为包含键值对的对象数组

/*** 将对象转换为包含键值对的对象数组* @param {Object} obj - 要转换的对象* @return {Array} 包含键值对的对象数组*/
function objectToArray(obj) {return Object.keys(obj).map(key => ({key: key,value: obj[key]}));
}// 示例用法
const formData = {location: 'Park',address: '123 Main St',latitude: '37.7749',longitude: '-122.4194'
};const formDataArray = objectToArray(formData);
console.log('转换后的数组:', formDataArray);

在这里插入图片描述

方法 2: 将数组转换为对象

/*** 将包含键值对的对象数组转换为对象* @param {Array} arr - 包含键值对的对象数组* @return {Object} 转换后的对象*/
function arrayToObject(arr) {return arr.reduce((accumulator, current) => {accumulator[current.key] = current.value;return accumulator;}, {});
}// 示例用法
const responseArray = [{ "key": "location", "value": "Park" },{ "key": "address", "value": "123 Main St" },{ "key": "latitude", "value": "37.7749" },{ "key": "longitude", "value": "-122.4194" }
];const formData = arrayToObject(responseArray);
console.log('转换后的对象:', formData);

在这里插入图片描述

说明

  1. objectToArray 方法:接受一个对象作为参数,将其转换为包含键值对的对象数组。使用 Object.keys() 获取对象的所有键,然后用 map 方法将每个键值对转成包含 keyvalue 属性的对象。

  2. arrayToObject 方法:接受一个包含键值对的对象数组,将其转换回一个对象。使用 reduce 方法遍历数组,将每个元素的 keyvalue 属性赋值到累加器对象中。

测试

复制到浏览器控制台打印即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CentOS】在CentOS上将MySQL从5.6升级到5.7

在CentOS上将MySQL从5.6升级到5.7 本文将详细介绍如何在CentOS上将MySQL从5.6升级到5.7,包括移除旧版本的存储库包的步骤。 1. 备份数据库 在进行升级之前,请确保已经备份了所有重要数据。可以使用mysqldump来导出所有数据库: mysqldump …

基于FPGA的以太网设计(3)----详解各类xMII接口

1、什么是xMII接口 MII (Media Independent Interface)接口,即介质无关接口或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。“介质无关” 表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。 MII接口是MAC和PHY之间的通信接口,MAC产生…

微软的Edge浏览器如何设置兼容模式

微软的Edge浏览器如何设置兼容模式? Microsoft Edge 在浏览部分网站的时候,会被标记为不兼容,会有此网站需要Internet Explorer的提示,虽然可以手动点击在 Microsoft Edge 中继续浏览,但是操作起来相对复杂&#xff0c…

基于内容的音乐推荐网站/基于ssm的音乐推荐系统/基于协同过滤推荐的音乐网站/基于vue的音乐平台

获取源码联系方式请查看文末🍅 摘 要 随着信息化时代的到来,系统管理都趋向于智能化、系统化,音乐推荐网站也不例外,但目前国内的有些公司仍然都使用人工管理,公司规模越来越大,同时信息量也越来越庞大&…

耳机、音响UWB传输数据模组,飞睿智能低延迟、高速率超宽带uwb模块技术音频应用

在数字化浪潮席卷全球的今天,无线通信技术日新月异,其中超宽带(Ultra-Wideband,简称UWB)技术以其独特的优势,正逐步成为无线传输领域的新星。本文将深入探讨飞睿智能UWB传输数据模组在音频应用中的创新应用…

GO Channel使用详解(各种场景下的最佳实践)

GO Channel使用详解(各种场景下的最佳实践) 一个知识点:通过反射的方式执行 select 语句,在处理很多的 case clause,尤其是不定长的 case clause 的时候,非常有用。而且,在后面介绍任务编排的实现时,我也会采用这种方法,所以,我先带你具体学习下 Channel 的反射用法…

Excel的常用函数公式

Excel的常见函数公式 1、SUM函数 sum函数:主要是用于求和。 格式:SUM(数值1…数值n) 例如:求算学生成绩的综合 sum(B3:D3)、表示求张三同学成绩的总分 只算两科成绩的总分: 注意:在函数公式的…

GraphRAG + GPT-4o mini 低成本构建 AI 图谱知识库

更好的效果,更低的价格,听起来是不是像梦呓? 限制 首先,让我们来介绍一个词:RAG。 简单来说,RAG(Retrieval-Augmented Generation,检索增强生成) 的工作原理是将大型文档…

探索PyPDF2:Python中的PDF处理大师

探索PyPDF2:Python中的PDF处理大师 1. 背景介绍 在数字化时代,PDF文件因其跨平台的兼容性和内容的稳定性而广受欢迎。然而,处理PDF文件,如合并、分割、提取文本等,往往需要专门的工具。这就是PyPDF2库的用武之地。PyP…

Spring系列-04-事件机制,监听器,模块/条件装配

事件机制&监听器 SpringFramework中设计的观察者模式-掌握 SpringFramework 中, 体现观察者模式的特性就是事件驱动和监听器。监听器充当订阅者, 监听特定的事件;事件源充当被观察的主题, 用来发布事件;IOC 容器本身也是事件广播器, 可以理解成观察…

Vue el-table的自定义排序返回值为null,设置刷新页面保持排序标志,导航时elementui组件不更新

自定义排序使用sort-change"sortChange"监听&#xff0c;表列需设置为sortable“custom”&#xff08;自定义&#xff09; <el-table:data"tableData"bordersort-change"sortChange":default-sort"{prop:sortProp,order:sortOrder}&quo…

网络安全等级保护制度1.0与2.0的演进与变革

等保1.0概述 等保1.0是我国在网络安全领域迈出的重要一步&#xff0c;它于2008年正式发布。该版本的等保制度以《信息安全技术 信息系统安全等级保护基本要求》为核心标准&#xff0c;主要聚焦于信息系统的物理安全、网络安全、主机安全、应用安全和数据安全等方面的基础防护。…

【设计模式——学习笔记】模板方法模式

介绍 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一个算法的骨架&#xff0c;并允许子类在不改变算法结构的情况下重新定义算法的某些步骤。这种模式的主要目的是通过将不变的行为放在父类中&#xff0c;而将可变的行…

新版本异次元荔枝V4自动发卡系统源码

新版本异次元荔枝V4自动发卡系统源码&#xff0c;增加主站货源系统&#xff0c;支持分站自定义支付接口&#xff0c;目前插件大部分免费&#xff0c;UI页面全面更新&#xff0c;分站可支持对接其他分站产品&#xff0c;分站客服可自定义&#xff0c;支持限定优惠。 源码下载&a…

HTML(六)——HTML表单和框架

HTML 表单 HTML 表单用于收集用户的输入信息&#xff0c;是一个包含表单元素的区域 HTML 表单表示文档中的一个区域&#xff0c;此区域包含交互控件&#xff0c;将用户收集到的信息发送到 Web 服务器。 HTML 表单通常包含各种输入字段、复选框、单选按钮、下拉列表等元素。 …

SpringBoot整合Spring Boot Admin实现监控

目录 基本操作流程&#xff1a; 服务端 server 0.创建一个springboot项目 1.导入依赖 2.添加配置信息 3.在启动类添加注解 4.运行 客户端client 1.添加依赖 2.添加配置信息 3.运行 基本操作流程&#xff1a; 服务端 server 0.创建一个springboot项目 1.导入依赖 …

杰发科技Bootloader(1)—— Keil配置地址

IAP方式 BootLoader方式 UDSBoot方式 AC7801的地址分配 用户空间的的地址从8000000开始分配&#xff0c;大小是64页&#xff0c;即128K。 RAM地址从20000000开始 基于UDSboot调试-Boot 烧录Boot之后&#xff0c;ATClinkTool无法连接 用keil查看内存&#xff0c;地址到8005388…

前端在浏览器总报错,且获取请求头中token的值为null

前端请求总是失败说受跨域请求影响&#xff0c;但前后端配置已经没有问题了&#xff0c;如下&#xff1a; package com.example.shop_manage_sys.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Conf…

算法学习2——排序算法(2)

上一篇介绍了几种常见且使用较多的排序算法&#xff0c;本章主要是一个进阶内容&#xff0c;介绍三个较为复杂的算法。 计数排序 (Counting Sort) 计数排序是一种适用于范围较小的整数序列的排序算法。它通过统计每个元素的出现次数&#xff0c;然后依次输出元素&#xff0c;…