如何将数组转换为对象然后分配给新变量

时间:2017-10-25 14:18:02

标签: javascript arrays ionic3

我想将存储在一个变量中的数据从数组转换为对象,然后将转换后的数据转换为另一个变量。

例如,请:

options = ["226:39"];

并将["226:39"]转换为{"226":"39"},然后将转换后的数据分配给convertedOptions变量。

我该怎么做?

5 个答案:

答案 0 :(得分:0)

您可以通过按':':

分割选项元素来实现



var options = ["226:39"];
convertedOptions = {};
var el = options[0].split(':');
convertedOptions[el[0]] = el[1];
console.log(convertedOptions);




OR:



var options = ["226:39"];
convertedOptions = {};
var [prop, value] = options[0].split(':');
convertedOptions[prop] = value;
console.log(convertedOptions);




OR:



var options = ["226:39"];
var [prop, value] = options[0].split(':');
convertedOptions = { [prop]: value };
console.log(convertedOptions);




答案 1 :(得分:0)

您可以使用:分隔符split字符串,创建convertedOptions对象,然后分配。



var options = ['226:39'];
var splitOptions = options[0].split(':');
var convertedOptions = {};
convertedOptions[splitOptions[0]] = splitOptions[1];
console.log(convertedOptions);




答案 2 :(得分:0)

您可以拆分字符串并为options的每个元素映射一个对象,以获取新属性。

var options = ["226:39"],
    convertedOptions = Object.assign(
        ...options.map(a => (([k, v]) => ({ [k]: v }))(a.split(':')))
    );
    
console.log(convertedOptions);   

答案 3 :(得分:0)

使用String#replace将字符串格式化为JSON,然后使用JSON#parse转换为对象:

var options = ["226:39"];

var convertedOptions = JSON.parse(options[0].replace(/([^:]+):([^:]+)/, '{"$1":$2}'));

console.log(convertedOptions);

答案 4 :(得分:0)

虽然其他答案对于您在问题中提到的样本值是正确的,但使用子字符串而不是拆分将处理值可能需要包含“:”字符的情况。

var options = ["226:39", "ratio:226:39"];
var convertedOptions = {};
for(var i = 0; i < options.length; i++){
var separatorIndex = options[i].indexOf(":");
    if(separatorIndex > -1) {
        var name = options[i].substring(0, separatorIndex);
        var value = options[i].substring(separatorIndex + 1, options[i].length);
        convertedOptions[name] = value;
    }
}
console.log(convertedOptions);