Javascript 对新数组对象的数组操作
我有一个混乱的阵列,来自其他地方:Javascript 对新数组对象的数组操作,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个混乱的阵列,来自其他地方: ["person: John, Comment:, id_number:1, he is a guitar player","person: James, Comment:, id_number:38, James remark goes here"] 我怎样才能做到这一点 [ {name:"John",id_number:1,Comment:"he is a guitar player"}, {name:"James",id_number:38,Comme
["person: John, Comment:, id_number:1, he is a guitar player","person: James, Comment:, id_number:38, James remark goes here"]
我怎样才能做到这一点
[
{name:"John",id_number:1,Comment:"he is a guitar player"},
{name:"James",id_number:38,Comment:"James remark goes here"}
]
这可以做到:
var arr = ["person: John, Comment:, id_number:1, he is a guitar player","person: James, Comment:, id_number:38, James remark goes here"];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
var thisPart = arr[i].split(',');
newArr.push(
{
name:thisPart[0].replace('person: ',''),
id_number:thisPart[2].replace(' id_number:',''),
Comment:$.trim(thisPart[3])
}
);
};
console.log(newArr);
var arr=[“人物:约翰,评论:,身份证号码:1,他是吉他手”,“人物:詹姆斯,评论:,身份证号码:38,詹姆斯评论到这里”];
var newArr=[];
对于(变量i=0;i
如果它们的顺序不总是正确的话,你可以更喜欢它,试着找出你想要的值
这就是它的工作原理:
祝你好运 下面是一个示例,说明如何使用
.map
和RegExp转换数据
我不能保证这会对API的所有输出都有效,因为它会生成错误的输出,实际上修复应该在源代码处
与API所有者联系最好的选择是纠正输入,而不是处理错误的输入。如果没有带引号的字符串,这将非常困难。定在source@rahul我无法控制这一切API@PaulS. 源代码来自其他我无法控制的API。告诉拥有该API的人他们的API已损坏。喝咖啡。我也试过同样的方法,但为什么每个对象的结果都是一样的?我看了一下你试过的代码,我认为你缺少的主要是将“obj”中的每个字符串拆分为“,”,所以当你执行“:”拆分时,你只得到了“person”,而没有得到任何其他数据,因为当您创建拆分变量时,这会丢失。这有意义吗?这是因为您从API接收的数组对象实际上不是数组,只是带有逗号的字符串。
["person: John, Comment:, id_number:1, he is a guitar player","person: James, Comment:, id_number:38, James remark goes here"].map(e => {
var m = e.match(/^person: ([^,]+), Comment:, id_number:([^,]+), (.*)$/);
return {"person": m[1], "id_number": +m[2], "Comment": m[3]};
});
// [
// {"person": "John", "id_number": 1, "Comment": "he is a guitar player"},
// {"person": "James", "id_number": 38, "Comment": "James remark goes here"}
// ]