如何获取具有相同键javascript的json数据
我有类的数据和它的句子(训练数据),我如何转换这个json数据如何获取具有相同键javascript的json数据,javascript,json,Javascript,Json,我有类的数据和它的句子(训练数据),我如何转换这个json数据 [ { class: 'Reservation', sentence: 'make reservation' }, { class: 'Reservation', sentence: 'do reservation' }, { class: 'Greetings', sentence: 'Hello' }, { class: 'Greetings', sentence: 'Good Morning' } ] 将数据
[
{ class: 'Reservation', sentence: 'make reservation' },
{ class: 'Reservation', sentence: 'do reservation' },
{ class: 'Greetings', sentence: 'Hello' },
{ class: 'Greetings', sentence: 'Good Morning' }
]
将数据转换为以下格式:
[
{ class: 'Reservation', sentence: ['make reservation','do reservation'] },
{ class: 'Greetings', sentence: ['Hello','Good Morning'] }
]
可以循环遍历每个对象并将其添加到新数组中。在添加之前,检查对象是否已在新数组中,如果已在,则可以将当前句子推送到现有对象,而不是添加 台阶
var数据=[
{类:'Reservation',句子:'makereservation'},
{类:'Reservation',句子:'do Reservation'},
{班级:'问候',句子:'你好'},
{班级:'问候',句子:'早上好'}
]
var dataFormatted=[];
对于(变量i=0;id.class==data[i].class);
如果(现有类){
existingClass.Session.push(数据[i].语句)
}否则{
数据推送({
类:数据[i]。类,
句子:[数据[i]。句子]
});
}
}
document.write(JSON.stringify(dataFormatted))
您可以循环遍历每个对象并将它们添加到新数组中。在添加之前,检查对象是否已在新数组中,如果已在,则可以将当前句子推送到现有对象,而不是添加
台阶
var数据=[
{类:'Reservation',句子:'makereservation'},
{类:'Reservation',句子:'do Reservation'},
{班级:'问候',句子:'你好'},
{班级:'问候',句子:'早上好'}
]
var dataFormatted=[];
对于(变量i=0;id.class==data[i].class);
如果(现有类){
existingClass.Session.push(数据[i].语句)
}否则{
数据推送({
类:数据[i]。类,
句子:[数据[i]。句子]
});
}
}
document.write(JSON.stringify(dataFormatted))
如果没有找到现有结果,您可以通过尝试附加到句子列表或创建新项来查看JSON数组并分配新数组:
const json=[
{类:'Reservation',句子:'makereservation'},
{类:'Reservation',句子:'do Reservation'},
{班级:'问候',句子:'你好'},
{班级:'问候',句子:'早上好'}
]
常量数据=[]
json.forEach((项目)=>{
let found=data.find(e=>e.class==item.class);
如果(找到){
发现.句.推(项.句);
}否则{
数据推送({
类别:item.class,
句子:[项目.句子]
});
}
})
console.log(data)
如果找不到现有结果,您可以通过尝试附加到句子列表或创建新项来查看json数组并分配新数组:
const json=[
{类:'Reservation',句子:'makereservation'},
{类:'Reservation',句子:'do Reservation'},
{班级:'问候',句子:'你好'},
{班级:'问候',句子:'早上好'}
]
常量数据=[]
json.forEach((项目)=>{
let found=data.find(e=>e.class==item.class);
如果(找到){
发现.句.推(项.句);
}否则{
数据推送({
类别:item.class,
句子:[项目.句子]
});
}
})
console.log(数据)
也许您希望合并
如下:
函数合并(数组){
常数r=[];
for(设i=0,o,p,l=array.length;id.class==o.class);
如果(p){
p、 句子。推(o.句);
}
否则{
r、 push({class:o.class,句子:[o.tension]});
}
}
返回r;
}
常数测试阵列=[
{类:'Reservation',句子:'makereservation'},
{类:'Reservation',句子:'do Reservation'},
{班级:'问候',句子:'你好'},
{班级:'问候',句子:'早上好'}
];
控制台日志(合并(测试阵列))代码>也许您想合并
如下:
函数合并(数组){
常数r=[];
for(设i=0,o,p,l=array.length;id.class==o.class);
如果(p){
p、 句子。推(o.句);
}
否则{
r、 push({class:o.class,句子:[o.tension]});
}
}
返回r;
}
常数测试阵列=[
{类:'Reservation',句子:'makereservation'},
{类:'Reservation',句子:'do Reservation'},
{班级:'问候',句子:'你好'},
{班级:'问候',句子:'早上好'}
];
控制台日志(合并(测试阵列))代码>你已经试过了吗?向我们展示你失败的代码。提示:您只需要将它们分组到类中
您已经尝试了什么吗?向我们展示您失败的代码。提示:您只需在class