Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 如何在typescript中分离具有特定数组前缀的对象数组_Javascript_Typescript Typings - Fatal编程技术网

Javascript 如何在typescript中分离具有特定数组前缀的对象数组

Javascript 如何在typescript中分离具有特定数组前缀的对象数组,javascript,typescript-typings,Javascript,Typescript Typings,我计划通过使用索引规范分离这些类型的数组来准备此数组 默认数据格式 [{ "Emp_code": "EM-00001", "Emp_title": "11", "Emp_firstName": "22", "Emp_lastName": "33", "Emp_dateOfBirth": "20-10-1985", "Con_title": "title", "Con_email": "email",

我计划通过使用索引规范分离这些类型的数组来准备此数组

默认数据格式

[{
      "Emp_code": "EM-00001",
      "Emp_title": "11",
      "Emp_firstName": "22",
      "Emp_lastName": "33",
      "Emp_dateOfBirth": "20-10-1985",
      "Con_title": "title",
      "Con_email": "email",
      "Con_addres": "address",
      "Con_phone": "phone"
    }]
[{
  "emp": {
      "code": "EM-00001",
      "title": "11",
      "firstName": "22",
      "lastName": "33",
      "dateOfBirth": "20-10-1985",
  },
  "con": {
      "Con_title": "title",
      "Con_email": "email",
      "Con_addres": "address",
      "Con_phone": "phone"
  }
}]
需要的格式

[{
      "Emp_code": "EM-00001",
      "Emp_title": "11",
      "Emp_firstName": "22",
      "Emp_lastName": "33",
      "Emp_dateOfBirth": "20-10-1985",
      "Con_title": "title",
      "Con_email": "email",
      "Con_addres": "address",
      "Con_phone": "phone"
    }]
[{
  "emp": {
      "code": "EM-00001",
      "title": "11",
      "firstName": "22",
      "lastName": "33",
      "dateOfBirth": "20-10-1985",
  },
  "con": {
      "Con_title": "title",
      "Con_email": "email",
      "Con_addres": "address",
      "Con_phone": "phone"
  }
}]
var项={
“Emp_代码”:“EM-00001”,
“Emp_标题”:“11”,
“Emp_firstName”:“22”,
“Emp_lastName”:“33”,
“Emp_出生日期”:“20-10-1985”,
“职务”:“职务”,
“Con_email”:“email”,
“地址”:“地址”,
“电话”:“电话”
}
风险值数据=[项目,项目];
var res=[]
对于(数据的var项){
var temp={};
res.push(温度);
对于(项目中的var prop){
var零件=道具拆分(“"”);
var prefix=parts[0].toLowerCase();
临时[前缀]=临时[前缀]|{};
临时[前缀][前缀==='emp'?零件[1]:道具]=项目[道具]
}
}
控制台日志(res)
var项={
“Emp_代码”:“EM-00001”,
“Emp_标题”:“11”,
“Emp_firstName”:“22”,
“Emp_lastName”:“33”,
“Emp_出生日期”:“20-10-1985”,
“职务”:“职务”,
“Con_email”:“email”,
“地址”:“地址”,
“电话”:“电话”
}
风险值数据=[项目,项目];
var res=[]
对于(数据的var项){
var temp={};
res.push(温度);
对于(项目中的var prop){
var零件=道具拆分(“"”);
var prefix=parts[0].toLowerCase();
临时[前缀]=临时[前缀]|{};
临时[前缀][前缀==='emp'?零件[1]:道具]=项目[道具]
}
}

控制台日志(res)您可以将属性名称减少为[{emp:{},{con:{}}]的起始累加器,并且每次迭代都可以将属性添加到累加器中的相应项

const数据=[{
“Emp_代码”:“EM-00001”,
“Emp_标题”:“11”,
“Emp_firstName”:“22”,
“Emp_lastName”:“33”,
“Emp_出生日期”:“20-10-1985”,
“职务”:“职务”,
“Con_email”:“email”,
“地址”:“地址”,
“电话”:“电话”
}];
const format=obj=>
Object.getOwnPropertyNames(obj[0]).reduce(
(附件,道具)=>{
如果(道具开始使用('Emp_')){
acc[0].emp[prop.replace('emp_','')=obj[0][prop];
}否则{
acc[1].con[prop]=obj[0][prop];
}
返回acc;
},
[{emp:{},{con:{}]
);

console.log(格式(数据))您可以将属性名称减少为[{emp:{},{con:{}}]的起始累加器,并且每次迭代都可以将属性添加到累加器中的相应项

const数据=[{
“Emp_代码”:“EM-00001”,
“Emp_标题”:“11”,
“Emp_firstName”:“22”,
“Emp_lastName”:“33”,
“Emp_出生日期”:“20-10-1985”,
“职务”:“职务”,
“Con_email”:“email”,
“地址”:“地址”,
“电话”:“电话”
}];
const format=obj=>
Object.getOwnPropertyNames(obj[0]).reduce(
(附件,道具)=>{
如果(道具开始使用('Emp_')){
acc[0].emp[prop.replace('emp_','')=obj[0][prop];
}否则{
acc[1].con[prop]=obj[0][prop];
}
返回acc;
},
[{emp:{},{con:{}]
);

console.log(格式(数据))脚本使用循环检查元素,然后将它们拆分为前缀和后缀。然后检查结果数组中是否存在前缀。如果不是,则将该前缀添加到数组中并准备结果

var a = [{"Emp_code": "EM-00001", "Emp_title": "11", "Emp_firstName": "22", "Emp_lastName": "33", "Emp_dateOfBirth": "20-10-1985", "Con_title": "title", "Con_email": "email", "Con_addres": "address", "Con_phone": "phone"}];
var b = [];
$.each(a, function(arrKey, arrData){
    var tempArr = {};
    $.each(arrData, function(key, value){
        var arrKey = key.split('_');
        var prefix = arrKey[0];
        var suffix = arrKey[1];
        if( $.inArray(prefix, Object.keys(tempArr)) == -1 ) {
            tempArr[prefix] = {};
        }
        tempArr[prefix][suffix]=value;
    });
    b.push(tempArr);
});
console.log(b);

下面的脚本使用循环检查元素,然后将它们拆分为前缀和后缀。然后检查结果数组中是否存在前缀。如果不是,则将该前缀添加到数组中并准备结果

var a = [{"Emp_code": "EM-00001", "Emp_title": "11", "Emp_firstName": "22", "Emp_lastName": "33", "Emp_dateOfBirth": "20-10-1985", "Con_title": "title", "Con_email": "email", "Con_addres": "address", "Con_phone": "phone"}];
var b = [];
$.each(a, function(arrKey, arrData){
    var tempArr = {};
    $.each(arrData, function(key, value){
        var arrKey = key.split('_');
        var prefix = arrKey[0];
        var suffix = arrKey[1];
        if( $.inArray(prefix, Object.keys(tempArr)) == -1 ) {
            tempArr[prefix] = {};
        }
        tempArr[prefix][suffix]=value;
    });
    b.push(tempArr);
});
console.log(b);

好的,你试过什么?这不是一个超级复杂的需求,您可以循环使用属性,沿途构建一个新对象。检查密钥前缀是否作为密钥存在于正在构建的对象上,如果未添加,则添加密钥/值对作为子属性(减去密钥前缀)。目前你只是陈述你的需求,所以不是一个代码编写服务。你的意思是可以有很多格式,比如“emp”、“con”,。。但是,只能通过key->“con”和“con_title”来分隔它们,而“emp”和“emp_code”来分隔它们?我将根据数组对象前缀来分隔,目前我们只有两个,但如果它包含更多前缀,则可以灵活地进行分隔。无论如何,我已经尝试了很多次以上提到或登录,但我只是用typescriptOk启动,你尝试了什么?这不是一个超级复杂的需求,您可以循环使用属性,沿途构建一个新对象。检查密钥前缀是否作为密钥存在于正在构建的对象上,如果未添加,则添加密钥/值对作为子属性(减去密钥前缀)。目前你只是陈述你的需求,所以不是一个代码编写服务。你的意思是可以有很多格式,比如“emp”、“con”,。。但是,只能通过key->“con”和“con_title”来分隔它们,而“emp”和“emp_code”来分隔它们?我将根据数组对象前缀来分隔,目前我们只有两个,但如果它包含更多前缀,则可以灵活地进行分隔。无论如何,我已经尝试了很多次以上提到或登录,但我只是用typescriptAny文本开始解释发生了什么?编辑了一个答案。任何文本解释发生了什么?编辑了一个答案。