首页 > 解决方案 > 将对象转换为名称值对列表的简单方法?

问题描述

有没有一种简单的方法可以将对象转换为名称值对,例如 jquery 生成的.serializeArray()

这不起作用:

var data = {
    name: "John",
    age: 26,
    isMale: true,
    occupation: null
}

var serialized = $(data).serailizeArray();

有没有一种简单的方法可以做到这一点,而无需查看每个属性并将它们转换为名称-值对?

我正在使用由其他人编写的辅助函数,该函数在将其发布到服务器之前为每个调用添加一个名称值对。显然,如果我给它一个常规对象或具有常规对象的数组,它就不起作用。

标签: javascriptjquery

解决方案


您可以使用Object.entriesand的组合来执行此操作map(假设您希望数据采用与serializeArray返回相同的格式):

var data = {
  name: "John",
  age: 26,
  isMale: true,
  occupation: null
};

var result = Object.entries(data).map(([k, v]) => ({name: k, value: v}));
console.log(result);


推荐阅读