如何将数组中的值插入 select json 键
How to insert values from an array into select json keys
我有这个数组:
[测试,usera,测试,userb,测试,userc,测试,userd]
还有这个JSON:
{
"data": [
{
"email": "testusera@abc.com",
"mobile": "9881880455",
"panCardNo": "ABCD014141",
"city": "Mumbai"
},
{
"email": "testusera@abc.com",
"mobile": "9881880455",
"panCardNo": "ABCD014141",
"city": "Mumbai"
}
]
}
我正在尝试将键值对添加到现有对象中,即 "lastname":"value from array"
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"
}
]
}
我变得未定义?或者没有输出?
您可以考虑一种只有一个迭代器的数组方法,并测试索引是否在数组内。
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>');
使用 javascript concat 函数合并数组 这里是关于该函数的更多信息。
感觉我的解决方案是提供的答案中最简单的一个
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;
}
我有这个数组: [测试,usera,测试,userb,测试,userc,测试,userd]
还有这个JSON:
{
"data": [
{
"email": "testusera@abc.com",
"mobile": "9881880455",
"panCardNo": "ABCD014141",
"city": "Mumbai"
},
{
"email": "testusera@abc.com",
"mobile": "9881880455",
"panCardNo": "ABCD014141",
"city": "Mumbai"
}
]
}
我正在尝试将键值对添加到现有对象中,即 "lastname":"value from array"
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"
}
]
}
我变得未定义?或者没有输出?
您可以考虑一种只有一个迭代器的数组方法,并测试索引是否在数组内。
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>');
使用 javascript concat 函数合并数组 这里是关于该函数的更多信息。
感觉我的解决方案是提供的答案中最简单的一个
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;
}