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

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 属性赋值到累加器对象中。

测试

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南北极之间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值