Javascript 将拆分JSON推回JSON对象
我有一个JSON文件,它可以有多个FromName值。我需要将这些值拆分为单独的值,并将其推回到下面的JSON数据中 FromName(保留名)和FromExtra(保留名) 我已经成功地创建了拆分,但是我无法让拆分以正确的名称在正确的位置推回JSON数据 这是我的JSON文件:Javascript 将拆分JSON推回JSON对象,javascript,json,object,Javascript,Json,Object,我有一个JSON文件,它可以有多个FromName值。我需要将这些值拆分为单独的值,并将其推回到下面的JSON数据中 FromName(保留名)和FromExtra(保留名) 我已经成功地创建了拆分,但是我无法让拆分以正确的名称在正确的位置推回JSON数据 这是我的JSON文件: [ { "Name": "News 1", "FromName": "John Citizen, Jane
[
{
"Name": "News 1",
"FromName": "John Citizen, Jane Doe",
"FromEmail": "testemail@notreal.com"
},
{
"Name": "News 2",
"FromName": "John Citizen",
"FromEmail": "testemail@notreal.com"
},
{
"Name": "News 3",
"FromName": "John Citizen",
"FromEmail": "testemail@notreal.com"
}
]
以下是我迄今为止编写的代码:
for (var i = 0; i < abcPre.length; i++) {
if (abcPre.FromName = []) {
var sepNames = (abcPre[i].FromName).split(',');
console.log(sepNames);
if (sepNames <= [1]) {
var FromExtra = sepNames [1];
console.log(`The new first name ${FromName}`);
console.log(`The second from name ${FromExtra}`);
abcPre[i].push.FromExtra;
console.log(abcPre);
}
}
else {
// console.log(`SentDate loop not working`);
}
}
这就是我试图实现的输出:
[
{
"Name": "News 1",
"FromName": "John Citizen",
"FromExtra": "Jane Doe",
"FromEmail": "testemail@notreal.com"
},
{
"Name": "News 2",
"FromName": "John Citizen",
"FromEmail": "testemail@notreal.com"
},
{
"Name": "News 3",
"FromName": "John Citizen",
"FromEmail": "testemail@notreal.com"
}
]
先谢谢你。Javascript是我仍在学习的东西。我假设,根据您的示例,它在FromNames字段中最多有两个名称 试试这个:
const result = abcPre.map((item) => {
[FromName, FromExtra] = item.FromName.split(', ');
return FromExtra ? {
...item,
FromName,
FromExtra
} : item;
})
console.log(result)
可以用逗号拆分()然后创建ExtraName属性,请尝试以下操作:
让arr=[
{
“名称”:“新闻1”,
“FromName”:“John Citizen,Jane Doe”,
“FromEmail”:testemail@notreal.com"
},
{
“名称”:“新闻2”,
“FromName”:“约翰公民”,
“FromEmail”:testemail@notreal.com"
},
{
“名称”:“新闻3”,
“FromName”:“约翰公民”,
“FromEmail”:testemail@notreal.com"
}
]
for(设i=0;i1){
arr[i].FromName=splitted[0];
arr[i].ExtraName=splitted[1]
}
}
console.log(arr)
for(设i=0;i1){
arr[i].FromName=splitted[0];
arr[i].ExtraName=splitted[1]
}
}
控制台日志(arr)
你说的“错误的地方”是什么意思?您的预期输出是什么?预期输出:{“Name”:“News 1”,“FromName”:“John Citizen”,“FromExtra”:“Jane Doe”“FromEmail”:testemail@notreal.com“},那么您想跳过第二和第三条记录(新闻2和新闻3)?很抱歉没有解释清楚。我试图将新的FromExtra添加到那些有多个from名称的,而忽略那些没有的。希望这有意义?再次感谢你。索尼特鲁米埃-太好了!非常感谢。我很高兴能帮助你,如果这回答了你的问题,你可以把它标记为正确。
const result = abcPre.map((item) => {
[FromName, FromExtra] = item.FromName.split(', ');
return FromExtra ? {
...item,
FromName,
FromExtra
} : item;
})
console.log(result)
for(let i = 0; i < arr.length; i++){
let splitted = arr[i].FromName.split(', ')
if(splitted.length > 1){
arr[i].FromName = splitted[0];
arr[i].ExtraName = splitted[1]
}
}
console.log(arr)