我得到的输出看起来像这样
var x = ["title: x_one", " description: 1", " value: 4"]
其中x[0]
返回title: x_one
这是一个字符串。我无法阅读标题的属性。我如何将其转换为对象,以便最终我能够遍历数组并读取标题,描述和值等属性。
我试图通过jquery
来做到这一点我一直在寻找解决方案,但还没找到。如果有任何我遗失的东西,我将非常感谢,如果有其他人拥有并且可以指出我那个
答案 0 :(得分:12)
循环遍历数组,将值分割为:
字符。然后在对象中使用第一部分作为属性名称,第二部分作为值。
var obj = {};
for (var i = 0; i < x.length; i++) {
var split = x[i].split(':');
obj[split[0].trim()] = split[1].trim();
}
答案 1 :(得分:2)
尝试此功能我已经测试过了
var a=new Array();
for(var i=0;i<x.length;i++){
var tmp=x[i].split(":")
a[tmp[0]]=tmp[1]
}
答案 2 :(得分:1)
使用更新语言的更新版本
const splitStr = (x) => {
const y = x.split(':');
return {[y[0].trim()]: y[1].trim()};
}
const objects = ["title: x_one", " description: 1", " value: 4"].map(splitStr)
console.log(objects)
答案 3 :(得分:0)
假设您在创建此阵列之前有一个对象,则不需要将其转换为任何对象。使用jQuery,你可以获得价值和关键。
$.each( obj, function( key, value ) {
alert( key + ": " + value );
});
如果这是最终输出,那么在循环时可以使用String.prototype.split。
答案 4 :(得分:0)
刚碰到这个。这是OP原始阵列的另一种解决方案。
var x = ["title: x_one", " description: 1", " value: 4"]
function mapper(str)
{
var o = {};
strArr = str.split(":");
o[strArr[0].trim()] = strArr[1].trim();
return o;
}
var resultArray = x.map(mapper);
console.log(resultArray[0].title);
console.log(resultArray[1].description);
console.log(resultArray[2].value);