Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取具有相同键javascript的json数据_Javascript_Json - Fatal编程技术网

如何获取具有相同键javascript的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' } ] 将数据

我有类的数据和它的句子(训练数据),我如何转换这个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','do reservation'] },
  { class: 'Greetings', sentence: ['Hello','Good Morning'] }
]

可以循环遍历每个对象并将其添加到新数组中。在添加之前,检查对象是否已在新数组中,如果已在,则可以将当前句子推送到现有对象,而不是添加

台阶

  • 创建一个空数组
  • 循环遍历对象数组(不是新数组,而是原始对象数组)
  • 检查具有类值的对象是否已存在
  • 如果否,则将一个新对象推送到新数组中,其中class的值是您的类,而句子的值是一个数组,其中句子是第一项(请参阅下面的代码)。如果是,则将当前句子推送到现有对象的句子数组中
  • 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))
    您可以循环遍历每个对象并将它们添加到新数组中。在添加之前,检查对象是否已在新数组中,如果已在,则可以将当前句子推送到现有对象,而不是添加

    台阶

  • 创建一个空数组
  • 循环遍历对象数组(不是新数组,而是原始对象数组)
  • 检查具有类值的对象是否已存在
  • 如果否,则将一个新对象推送到新数组中,其中class的值是您的类,而句子的值是一个数组,其中句子是第一项(请参阅下面的代码)。如果是,则将当前句子推送到现有对象的句子数组中
  • 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