Как вернуть данные массива из цикла foreach в Angular - PullRequest
2 голосов
/ 29 мая 2019

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

Я пытался вставить цикл в обещание и не смог никуда добраться. Что я делаю не так?

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


onSubmit(formData) {

    this.formdata = formData;

    Object.keys(this.data).forEach(key => {
        if (key == this.formdata.pin) {
            const url = this.data[key].url;
            // have also tried this.url to no avail
        }
    });

    // says undefined
    console.log(url);

    // set up headers, etc...

    // I need to use here
    this.http.post(url, body, head)
    ...
}

Ответы [ 2 ]

2 голосов
/ 29 мая 2019
onSubmit(formData) {

this.formdata = formData;
let url; // Define here so that its accessible
Object.keys(this.data).forEach(key => {
    if (key === this.formdata.pin) {
         url = this.data[key].url;
        // have also tried this.url to no avail
    }
});

// Now url is in scope
console.log(url);

    ...
}
1 голос
/ 29 мая 2019

Переключение вашего forEach на map может упростить это;map возвращает значения, тогда как forEach нет.

Старый:

Object.keys(this.data).forEach(key => {
    if (key == this.formdata.pin) {
        const url = this.data[key].url;
    }
});

// says undefined
console.log(url);

Новое: (Я также добавил сюда === на основе комментария ниже)

const urls = Object.keys(this.data).map(key => {
    if (key === this.formdata.pin) {
        return this.data[key].url;
        // have also tried this.url to no avail
    }
});

console.log(urls);

карта документов и для каждой документации

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