javascript - 如何循环遍历角度/离子中的嵌套数组
问题描述
我一直在搜索,但我遇到的一切都是为了在 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);
});
}
});
解决方案
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));
这可以满足您的需求,并且仅使用一个循环。我使用扩展语法来防止未定义。如果您要查找的键不存在,则会返回一个空数组。
推荐阅读
- asp.net-mvc - MVC - 加载视图后在按钮单击时传递字符串
- java - 在批处理文件中使用 wget 下载 JDK 安装程序
- vba - 检查文件是否在数据库中链接
- typo3 - TYPO3 Extension Pagerenderer 禁用 addJsInlineCode 的缓存
- python - 在 Python 3 中更新特定的网格单元
- java - 如何检查“JFrame”中的标题可以容纳多少个字符?
- vue.js - VueRouter:路由器推送不发出 API 请求
- jsoup - jsoup HTML 片段检测
- android - 你可以在 xml 中使用 ellipsize 和 maxLength 吗?
- discord.py - 如何为多个 discord.py 命令添加共享冷却时间