转换对象的属性和值,以密钥值对阵列(Convert object's properties

2019-07-19 00:54发布

我是相当新的JavaScript和我不知道这是可以做到的,但基本上我想借此对象并将其转换成格式字符串数组; array[0] = 'prop1=value1'

这背后的原因是,我有一个用户输入ķ= V对列表为形式,后来它写成一个JSON BLOB中的对象。 从键值CSL的JSON对象会很简单,现在我需要回去的其他方式(我已经通过Ajax调用收到的JSON,并希望填充空白表格)。 这是可能在JavaScript? 如果没有,请各地提供了一个合理的工作。

示例代码;

在对象调试;

 Object
        private_key: "private-key"
        public_key: "public-key"

我需要将其转换成;

 "private_key=private-key,public_key=public-key"

基本上,我需要的是这样的(伪代码)

var outputString = '';
foreach (prop in obj)
{
    outputString = outputString + prop.tostring() + '=' + prop.value + ',';
}

Answer 1:

你可能寻找的线沿线的东西

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 ,这你想要做什么,即使是复杂的类型(尽管它使用了&字符作为分隔符,而不是逗号。



Answer 2:

var array = [];
for (k in o)
{
    if (o.hasOwnProperty(k))
    {
        array.push(k+"="+o[k]);
    }
}

然后,您可以join你的最后一个字符串数组。



Answer 3:

var object = {
    private_key: "private-key",
    public_key: "public-key"
};

var array = [];
for (var prop in object)
    array.push(prop + "=" + object[prop]);
return array.join(','); // "private_key=private-key,public_key=public-key"

注意顺序不能保证。



Answer 4:

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



Answer 5:

 obj = { private_key: "private-key", public_key: "public-key" } str = JSON.stringify(obj).replace(/[{}]/g, '').replace(/"/g, '').replace(/:/g, '='); console.log("Using JSON.stringify:\n", str); str = Object.keys(obj).map((key) => `${key}=${obj[key]}`).join(',') console.log("Using ES6 keys/map:\n", str); str = jQuery.param(obj).replace(/&/g,','); console.log("Using jQuery.param:\n", str); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 



Answer 6:

var obj =[
            {'2018-05-07':1},
            {'2018-05-08':3},
            {'2018-05-09':2}
        ];

        for(var i of obj) {
            var key = Object.keys(i).toString();
            console.log(i,'=',i[key]);
        }

结果



文章来源: Convert object's properties and values to array of key value pairs