数组操作到新的数组对象中

array manipulation into new array object

本文关键字:数组 对象 操作      更新时间:2023-09-26

我有一个混乱的数组,它来自其他地方,其中:

["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);

如果它们的顺序不总是正确的,你可以变得更花哨,并尝试搜索出你想要的值。

它在这里工作:http://codepen.io/caleboleary/pen/bENGbx

祝你好运!

以下是如何使用.mapRegExp转换数据的示例

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

我不能保证这将适用于API的所有输出,因为它正在生成错误的输出,实际上修复应该在源

联系API所有者