首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将对象的属性和值转换为键值对数组

将对象的属性和值转换为键值对数组
EN

Stack Overflow用户
提问于 2013-01-31 07:15:55
回答 7查看 64K关注 0票数 23

我是JavaScript的新手,不确定是否可以做到这一点,但基本上我想将一个对象转换为以下格式的字符串数组:array[0] = 'prop1=value1'

这背后的原因是,我让用户将一组k=v对输入到表单中,然后将其编写为json blob中的对象。从键值csl到json对象很简单,现在我需要返回到另一种方式(我已经通过ajax调用收到了JSON,并希望填充一个空白表单)。这在JavaScript中是可能的吗?如果没有,请提供一个合理的工作周围。

示例代码;

调试器中的对象;

代码语言:javascript
复制
 Object
        private_key: "private-key"
        public_key: "public-key"

我需要将其转换为;

代码语言:javascript
复制
 "private_key=private-key,public_key=public-key"

基本上我需要这样的东西(伪代码)

代码语言:javascript
复制
var outputString = '';
foreach (prop in obj)
{
    outputString = outputString + prop.tostring() + '=' + prop.value + ',';
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-01-31 07:25:42

您可能正在寻找类似以下内容的内容

代码语言:javascript
复制
var obj = {value1: 'prop1', value2: 'prop2', value3: 'prop3'};
var arr = [];
for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        arr.push(key + '=' + obj[key]);
    }
};
var result = arr.join(',');
alert(result);

请注意,如果您的值是字符串,则可以很好地工作;如果它们是复杂对象,则需要添加更多代码。

或者,您可以只使用jQuery.param,它可以执行您想要的操作,即使对于复杂类型也是如此(尽管它使用&字符作为分隔符,而不是逗号。

票数 41
EN

Stack Overflow用户

发布于 2017-12-01 06:39:41

在ES6中,您可以使用Object.entries({object1:1,object2:2});。结果是:[["object1",1],["object2",2]]

票数 5
EN

Stack Overflow用户

发布于 2013-01-31 07:24:53

代码语言:javascript
复制
var array = [];
for (k in o)
{
    if (o.hasOwnProperty(k))
    {
        array.push(k+"="+o[k]);
    }
}

然后,您可以对最终字符串的数组执行join操作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14615669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档