Как перебрать объект JavaScript, содержащий другие объекты, и присвоить значение из массива. - PullRequest
0 голосов
/ 04 июля 2019

Я пишу код, который имеет дело с объектом с именем createdCustomer, определенным ниже,

createdCustomer: {
          email: "string",
          phoneNumber: "string",
          mobileNumber : "string",
          temporaryAddress : {
              address1: "string",
              address2: "string",
              address3: "string",
              address4: "string",
              city: "string",
              country: "string",
              region: "string",
              zipCode: "string"
          },
          customerNumber: "string",
          locale: "string",
          regNo: "string",
          address: {
            address1: "string",
            address2: "string",
            address3: "string",
            address4: "string",
            city: "string",
            country: "string",
            region: "string",
            zipCode: "string"
          },
          salutation: "string",
          firstName: "string",
          middleName: "string",
          lastName: "string"
        }

и пытается присвоить значения из массива с именем formValues, размер которого равен 26, что совпадает с количеством строк в createdCustomer.

Пока мне удалось присвоить все значения массива следующим образом:

this.createdCustomer.email = formValues[0];
this.createdCustomer.phoneNumber = formValues[1];
this.createdCustomer.mobileNumber = formValues[2];
this.createdCustomer.temporaryAddress.address1 = formValues[3];
this.createdCustomer.temporaryAddress.address2 = formValues[4];
this.createdCustomer.temporaryAddress.address3 = formValues[5];
this.createdCustomer.temporaryAddress.address4 = formValues[6];
this.createdCustomer.temporaryAddress.city = formValues[7];
this.createdCustomer.temporaryAddress.country = formValues[8];
this.createdCustomer.temporaryAddress.region = formValues[9];
this.createdCustomer.temporaryAddress.zipCode = formValues[10];
this.createdCustomer.customerNumber = formValues[11];
this.createdCustomer.locale = formValues[12];
this.createdCustomer.regNo = formValues[13];
this.createdCustomer.address.address1 = formValues[14];
this.createdCustomer.address.address2 = formValues[15];
this.createdCustomer.address.address3 = formValues[16];
this.createdCustomer.address.address4 = formValues[17];
this.createdCustomer.address.city = formValues[18];
this.createdCustomer.address.country = formValues[19];
this.createdCustomer.address.region = formValues[20];
this.createdCustomer.address.zipCode = formValues[21];
this.createdCustomer.salutation = formValues[22];
this.createdCustomer.firstName = formValues[23];
this.createdCustomer.middleName = formValues[24];
this.createdCustomer.lastName = formValues[25];

, но поскольку это довольно жестко и избыточно, я хочу реорганизовать его, используя цикл.

Когда я посмотрел, как проходить через объект JavaScript, который содержит другой объект, я обнаружил, что на страницах только объяснялось, как проходить через "простые" объекты, например

myFriends : {
    {
        name: "John",
        age: 23,
        homeTown: "New York"
    },
    {
        name: "Anna",
        age: 25,
        homeTown: "San Diego"
    },
    {
        name: "Julian",
        age: 20,
        homeTown: "London"
    }
}

Приведенный выше пример довольно легко пройти через цикл, потому что все 3 объекта имеют «одинаковую форму». Но мой случай, который имеет дело с createdCustomer, может быть немного сложнее, потому что иногда вы встречаете простую строку, а иногда объект, который состоит из нескольких строк и т. Д.

Кроме того, вам также необходимо одновременно выполнить цикл по массиву formValues и назначить каждое значение этого массива созданному клиенту для обновления данных.

Если вы хотите использовать цикл для выражения того же, что и в жестко запрограммированной версии того, как я назначил данные, как вы будете это делать?

Если вы просто хотите найти / обновить единственное значение, которое может быть легко обработано картой, но в данном конкретном случае я не думаю, что оно идет так гладко ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...