簡體   English   中英

如何使用javascript遍歷json對象並形成具有連接值的新對象?

[英]How to iterate through json object and form a new object with concatenated values using Javascript?

我一直在使用api來提供JSON對象中的數據,而我卻完全無法控制它。 我需要在選擇框上提取數據。 我設法填充它,但它只允許單值綁定。 即firstName或lastName或middleName兩者都不是。 這是我當前的JSON對象:

.employeesList = [
  {
    id: 1,
    firstName: 'firstName',
    middleName: 'middleName',
    lastName: 'lastName',
  },
  {
    id: 2,
    firstName: 'firstName2',
    middleName: 'middleName2',
    lastName: 'lastName2',
  },
  {
    id: 3,
    firstName: 'firstName3',
    middleName: 'middleName3',
    lastName: 'lastName3',
  },
  {
    id: 4,
    firstName: 'firstName4',
    middleName: 'middleName4',
    lastName: 'lastName4',
  },
  {
    id: 5,
    firstName: 'firstName5',
    middleName: 'middleName5',
    lastName: 'lastName5',
  }
]

我想在每個數據中合並firstName,middleName和lastName並形成一個僅具有id和fullNames的新JSON對象,如下所示:

.employeesList = [
  {
    id: 1,
    fullName: 'firstName MiddleName LastName'
  },
  {
    id: 2,
    fullName: 'firstName2 MiddleName2 LastName2'
  },
  {
    id: 3,
    fullName: 'firstName3 MiddleName3 LastName3'
  },
  {
    id: 4,
    fullName: 'firstName4 MiddleName4 LastName4'
  },
  {
    id: 5,
    fullName: 'firstName5 MiddleName5 LastName5'
  }
]

如何使用Javascript實現該目標?

使用array.prototype.map

 var employeesList = [ { id: 1, firstName: 'firstName', middleName: 'middleName', lastName: 'lastName', }, { id: 2, firstName: 'firstName2', middleName: 'middleName2', lastName: 'lastName2', }, { id: 3, firstName: 'firstName3', middleName: 'middleName3', lastName: 'lastName3', }, { id: 4, firstName: 'firstName4', middleName: 'middleName4', lastName: 'lastName4', }, { id: 5, firstName: 'firstName5', middleName: 'middleName5', lastName: 'lastName5', } ]; var newEmployeesList = employeesList.map(e => ({id: e.id, fullName: `${e.firstName} ${e.middleName} ${e.lastName}`})); console.log(newEmployeesList); 

 var employeesList = [ { id: 1, firstName: 'firstName', middleName: 'middleName', lastName: 'lastName', }, { id: 2, firstName: 'firstName2', middleName: 'middleName2', lastName: 'lastName2', }, { id: 3, firstName: 'firstName3', middleName: 'middleName3', lastName: 'lastName3', }, { id: 4, firstName: 'firstName4', middleName: 'middleName4', lastName: 'lastName4', }, { id: 5, firstName: 'firstName5', middleName: 'middleName5', lastName: 'lastName5', } ] employeesList.map((obj) => { obj["fullName"] = obj["firstName"] + " " + obj["middleName"] + " " +obj["lastName"]; delete obj["firstName"]; delete obj["middleName"]; delete obj["lastName"]; console.log(obj) }); 

newList = employeesList.map((empl) => {
    return {
        id: empl.id, fullName: empl.firstName + ' ' + empl.middleName + ' ' + empl.lastName}
    }
)

我使用此代碼,對我來說工作正常。 (需要JQuery)。

var newEmployeesList = [];
$.each(employeesList, function(key, item) {

    var f_name = item.firstName;

    var m_name = item.middleName;

    var l_name = item.lastName;

    var obj = new Object();
    obj.id = key;
    obj.fullName = f_name + " " + m_name + " " + l_name;

    newEmployeesList.push(obj);

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM