我想将存储在一个变量中的数据从数组转换为对象,然后将转换后的数据转换为另一个变量。
例如,请:
options = ["226:39"];
并将["226:39"]
转换为{"226":"39"}
,然后将转换后的数据分配给convertedOptions
变量。
我该怎么做?
答案 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);