Как выделить массив объектов с определенным префиксом массива в машинописи - PullRequest
0 голосов
/ 03 октября 2018

Я планировал подготовить этот массив отдельным массивом с указанием индекса

Формат данных по умолчанию

[{
      "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"
  }
}]

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Вы можете уменьшить имена свойств до начального аккумулятора [{emp: {}}, {con: {}}], и на каждой итерации вы можете добавлять свойство к соответствующему элементу в аккумуляторе.

const data = [{
      "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"
    }];
    
const format = obj =>
  Object.getOwnPropertyNames(obj[0]).reduce(
    (acc, prop) => {
      if (prop.startsWith('Emp_')) {
        acc[0].emp[prop.replace('Emp_', '')] = obj[0][prop];
      } else {
        acc[1].con[prop] = obj[0][prop];
      }
      return acc;
    },
    [{ emp: {} }, { con: {} }]
  );
 
 console.log(format(data));
0 голосов
/ 03 октября 2018

Ниже скрипт проверяет элемент с помощью циклов, а затем разбивает их на префикс и суффикс.Затем проверяет, присутствует ли префикс в результирующем массиве или нет.Если это не так, добавьте этот префикс в массив и подготовьте результат.

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);
0 голосов
/ 03 октября 2018

var item = {
  "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 data = [item, item];

var res = []

for (var item of data) {
  var temp = {};
  res.push(temp);
  for (var prop in item) {
    var parts = prop.split('_');
    var prefix = parts[0].toLowerCase();
    temp[prefix] = temp[prefix] || {};
    temp[prefix][prefix === 'emp' ? parts[1] : prop] = item[prop]
  }
}

console.log(res);
...