转换字符串数组为一个键值对对象
我正在一个输出它看起来像这样转换字符串数组为一个键值对对象
var x = ["title: x_one", " description: 1", " value: 4"]
其中x[0]
返回title: x_one
它是一个字符串。我不能读取所有权的财产。我将如何将其转换为对象,以便最终能够遍历数组并读取诸如标题,描述和值等属性。
我试图通过jquery的
我一直在寻找一个解决方案来做到这一点,但还没有真正找到一个。如果有任何我失踪的地方,我将非常感激,如果其他人有,并可以指向我
循环遍历数组,分割:
字符处的值。然后在对象中使用第一部分作为属性名称,第二部分作为值。
var obj = {};
for (var i = 0; i < x.length; i++) {
var split = x[i].split(':');
obj[split[0].trim()] = split[1].trim();
}
感谢man..you回答了我以前的几个问题,这些都是正确的:-)。感谢您的帮助和帮助理解概念 – soum 2014-12-10 23:01:14
假设你有一个对象,然后再创建此数组,您不需要将其转换为任何东西。使用jQuery的每个你可以得到的价值和关键。
$.each(obj, function(key, value) {
alert(key + ": " + value);
});
如果这是最终输出,那么您可以在循环时使用String.prototype.split。
这是一个数组,而不是一个目的。键将只是数组索引'0','1'等 – Barmar 2014-12-10 22:50:16
试试这个功能我已经测试了它
var a=new Array();
for(var i=0;i<x.length;i++){
var tmp=x[i].split(":")
a[tmp[0]]=tmp[1]
}
除了不适当使用'new Array()',这与我的答案完全相同。 – Barmar 2014-12-10 22:55:49
就撞上了这一点。这是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);
更是最新的版本,使用一些较新的语言
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)
良好的使用Lambda(MOZ - 数组函数)功能。虽然新手和一些中级可能会因为Pro's&Con的使用而在没有其他语言的丰富知识和经验的情况下被误用,即使对于JS/JQ – GoldBishop 2017-01-18 13:50:24
你在哪里从输出?它看起来应该是JSON,但它的格式不正确。 – LavaSlider 2014-12-10 22:46:28
使用'split(':')'将该值拆分为属性名称和值。 – Barmar 2014-12-10 22:47:24
以及我正在从我们的朋友的输出谷歌 https://spreadsheets.google.com/feeds/list/1hAJKYmNsDym6DIQkhZAH8PBtMYndzu9yCLZ1bp_VKCo/od6/public/basic?gid=0&single=true&hl=en_US&alt=json – soum 2014-12-10 22:49:02