如何从数组中插入值到选定的JSON键

我有这个数组: [test,usera,test,userb,test,userc,test,userd]

而这个JSON:

{ "data": [ { "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": "Mumbai" }, { "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": "Mumbai" } ] } 

我试图将键值对添加到现有的对象,即“姓氏”:“从数组中的值”

 for(var i=0; i<importedJson.data.length;i++) { for(var f=1;f<=arrFirstLast.length-1;f+2) { importedJson.data[i].lastName = arrFirstLast[f]; } } 

预期的Json:

 { "data": [ { "lastname": "usera", "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": "Mumbai" }, { "lastname": "userb", "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": "Mumbai" } ] } 

我得到未定义? 或没有输出?

感觉像我的解决scheme是提供的答案中最简单的

 var j=0, k=0; for(var i=0; i<importedJson.data.length;i++) { importedJson.data[i].firstName = arrFirstLast[k]; k=k+2; j=j+1; importedJson.data[i].lastName = arrFirstLast[j]; j=j+1; } 

使用javascript concat函数来合并数组,这里是关于函数的更多信息。

http://www.w3schools.com/jsref/jsref_concat_array.asp

你可能会考虑一个只有一个迭代器的数组方法和一个testing,如果索引是在数组内。

 var arrFirstLast = ['test', 'usera', 'test', 'userb', 'test', 'userc', 'test', 'userd'], importedJson = { "data": [ { "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": "Mumbai" }, { "email": "testusera@abc.com", "mobile": "9881880455", "panCardNo": "ABCD014141", "city": "Mumbai" } ] }; importedJson.data.some(function (a, i) { var p = i * 2 + 1; if (p < arrFirstLast.length) { a.lastName = arrFirstLast[p]; } else { return true; // stop iteration } }); document.write('<pre>' + JSON.stringify(importedJson, 0, 4) + '</pre>');