Перебор объекта объектов для создания массива - PullRequest
0 голосов
/ 23 мая 2019

У меня есть Object, содержащий больше objects, который я хочу перебрать.Структура выглядит следующим образом:

Objects in Objects

В конце концов, я хочу создать array, где key родительского объекта указывает на value в столбце заголовка дочернего объекта , поэтому я могу позже опубликовать какой-нибудь PHP-скрипт, т.е. я хочу:

BusinessJustification => 'titleValue'
Contract => 'titleValue'
...

Но я действительно изо всех силчтобы на самом деле цикл по массиву.

Я пробовал следующие два метода, и хотя я могу циклически по родительскому объекту, я, кажется, изо всех сил пытается получить доступ к значениям в дочернем, они просто показывают какиндексная позиция, или undefined соответственно.

for (var fields in this.postData) {
    for (var columns in fields){
        console.log(columns['title']);
    }
}

for (var fields in this.postData) {
    for (var columns in fields){
        console.log(Object.entries(columns['title']));
    }
}

Буду признателен за любую помощь, так как я действительно почесал голову и попробовал несколько вещей в Интернете.

1 Ответ

1 голос
/ 23 мая 2019

В конце концов я хочу создать array, где key родительского объекта указывает на value в столбце заголовка дочернего объекта.

Вы не можете сгенерировать array с этими свойствами в Javascript, как вы делаете в PHP: Массив в PHP на самом деле является упорядоченным map. map - это тип, который связывает values с keys. Но вы можете создать Javascript Object или Map . Тем не менее, я считаю, что первый вариант - это тот, который вам нужен, если вы собираетесь отправлять данные в какой-либо серверный PHP скрипт.

Я полагаю, вы ищете это:

const postData = {
    BusinessJustification: {blur: true, title: "business-title", valid: true},
    Contact: {blur: true, title: "contact-title", valid: true},
    Department: {blur: true, title: "department-title", valid: true},
}

let newObj = {};

for (const field in postData)
{
  newObj[field] = postData[field].title;
}

console.log(newObj);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...