0

以下の形式で json から応答を受信して​​います

["user0", "user1", "user2", "user3", "user5", "user6", "user7"]

そして、私はそれを以下のフォーマットに変換する必要があります

    [
     { id: 'user0', text: 'user1'},
     { id: 'user1', text: 'user2'},
     { id: 'user2', text: 'user3'},
     { id: 'user3', text: 'user4'},
     { id: 'user5', text: 'user5'},
     { id: 'user6', text: 'user6' },
     { id: 'user7', text: 'user7' }
    ];

これを JavaScript で実現する方法。

4

4 に答える 4

0

これを試して

    var a = ["user0", "user1", "user2", "user3", "user5", "user6", "user7"]
    var array = [];

    for(var i =0;i<a.length;i++)
    {
        var temp = new Object();
        temp.id= a[i];
        temp.text = a[i];
        array.push(temp);
        //alert(JSON.stringify(array));
    }

var requiredString = JSON.stringify(array);
alert(requiredString.replace(/"id"/g, 'id').replace(/"text"/g,text));
于 2013-04-12T10:38:04.177 に答える
0

単純なループで必要なことを行う必要があります。

var myArray = ["user0", "user1", "user2", "user3", "user5", "user6", "user7"];
var newArray = [];
for (var i = 0, l = myArray.length; i < l; i++) {
    var newItem = {id : myArray[i], text: "user" + (i +1)};
    newArray.push(newItem);
}

JSFiddle の例 - http://jsfiddle.net/eVQWS/

于 2013-04-12T10:23:54.690 に答える
0

最も簡単な方法は、mapメソッドを使用することです:

var arr = ["user0", "user1", "user2", "user3", "user5", "user6", "user7"],
    result = arr.map(function(e, i, a) {
        return { id: e, text: i < a.length - 1 ? a[i+1] : e };
    });

console.log(result);

MDNでブラウザーの互換性を確認し、必要に応じてshimを使用してください。

于 2013-04-12T10:24:08.023 に答える