如何从Angular中的foreach循环返回数组数据

时间:2019-05-28 22:10:06

标签: javascript angular ionic-framework ionic3

我正在遍历嵌套对象以获取一些数据。这是可行的,但我似乎无法返回数据并在其他地方使用它。

我已经尝试过将循环置于承诺中,也无法到达任何地方。我在做什么错了?

<a class="r-button" onclick="document.getElementById('menu').style.display='block'">  Click button </a>

2 个答案:

答案 0 :(得分:2)

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 :(得分:1)

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);

map docsforEach docs