Javascript 将Json数据转换为特定数组

Javascript 将Json数据转换为特定数组,javascript,arrays,json,Javascript,Arrays,Json,我收到了json的响应,格式如下 ["user0", "user1", "user2", "user3", "user5", "user6", "user7"] 我需要把它转换成下面的格式 [ { id: 'user0', text: 'user1'}, { id: 'user1', text: 'user2'}, { id: 'user2', text: 'user3'}, { id: 'user3', text: 'user4'},

我收到了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中实现这一点。

一个简单的循环应该满足您的需要:

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);
}
var myArray=[“user0”、“user1”、“user2”、“user3”、“user5”、“user6”、“user7”];
var newArray=[];
for(var i=0,l=myArray.length;i
jshiddle示例-

最简单的方法是使用方法:

var arr=[“用户0”、“用户1”、“用户2”、“用户3”、“用户5”、“用户6”、“用户7”],
结果=arr.map(函数(e,i,a){
返回{id:e,text:i

请检查atMDN并在需要时使用。

在我将使用的现代浏览器中

如果您必须支持没有ES5支持的旧浏览器,我会使用一个垫片-通常我会对所有的浏览器进行垫片填充,但您也可以只实现您需要的浏览器,文档中有一个实现示例

要知道,在已经支持新fat数组语法的ES6和Firefox Nightly中,您实际上可以:

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

var newArray = array.map(item => ({id: item, text: item}));
试试这个

    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));
var a=[“user0”、“user1”、“user2”、“user3”、“user5”、“user6”、“user7”]
var数组=[];

对于(var i=0;我你尝试过什么?阅读常见问题解答plz:它清楚地说明了一个好问题表明OP已经投入了一些精力。你的问题到底是什么?你被困在哪里了?如果你不发布你的代码,我们无法帮你。你尝试过什么吗?我想它包含了你的需要谢谢@praning!!上面的输出是[{“id”:“user0”,“text”:“user0”},{“id”:“user1”,“text”:“user1”},{“id”:“user2”,“text”:“user2”},{“id”:“user3”,“text”:“user3”},{“id”:“user5”},{“id”:“user6”,“text”:“user6”},{“id”:“user7”,“text”:“user7”}]我想要没有引号的id和文本,可以吗?是的。试试它var requiredString=JSON.stringify“/g,'id')。替换(/“text”/g,text));请在回答中查看我的编辑。您需要使用
replace
function@rohitj:引号只是数据表示的一部分。它们实际上不是数据本身的一部分。如果您希望数据为JSON,则需要引号。另外,不要忘记接受答案。您可以实现这两个目标。如果您ant Quotence不使用我提到的
replace
。如果您想要引用,请使用指示的“replace”。但最好将其与Quotence一起使用,因为它是JSON的默认格式
var array = ["user0", "user1", "user2", "user3", "user5", "user6", "user7"];

var newArray = array.map(item => ({id: item, text: item}));
    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));