我正在遍历嵌套对象以获取一些数据。这是可行的,但我似乎无法返回数据并在其他地方使用它。
我已经尝试过将循环置于承诺中,也无法到达任何地方。我在做什么错了?
<a class="r-button" onclick="document.getElementById('menu').style.display='block'"> Click button </a>
答案 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);