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"}
// ]