Как мне пройти через вложенный массив в угловых / ионных - PullRequest
0 голосов
/ 25 мая 2019

Я искал, но все, с чем я сталкивался, это зацикливание в HTML, и мне нужно зациклить в .ts.

У меня есть массив, который мне нужно зациклить и проверить, соответствует ли введенное значение ключу. Если это так, вернуть значения внутри массива

data: any = {
    '1234': {
        site: 'https://example1.com/',
        path: 'uploads',
        link: 'https://example1.com/uploads',
    },
    '5678': {
        site: 'https://example2.com/',
        path: 'uploads',
        link: 'https://example2.com/uploads',
    }
}

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

let pin = '1234';
Object.keys(data).forEach(key => {
    if(key == pin) {
        Object.keys(key).forEach(k => {
            // I'm trying to get something like k.url so I can store it
            console.log(k.url);
        });
    }
});

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

const data = {
    '1234': {
        site: 'https://example1.com/',
        path: 'uploads',
        link: 'https://example1.com/uploads',
    },
    '5678': {
        site: 'https://example2.com/',
        path: 'uploads',
        link: 'https://example2.com/uploads',
    }
}

const pin = '1234';

const properties = { ...data[pin] };

Object.values(properties).forEach(v => console.log(v));

// This will NOT throw an exception
// Using a non-existing key here
Object.values({...data['fake']}).forEach(v => console.log(v));

// This will throw an exception
// Using a non-existing key here
Object.values(data['fake']).forEach(v => console.log(v));

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

0 голосов
/ 25 мая 2019

Вы можете использовать только один цикл для достижения этого

const pin = '1234';
Object.keys(data).forEach(key => {
    if(key == pin) {
         console.log(data[key].url);
         console.log(data[key].site);
         console.log(data[key].path);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...