如何从JSON获取数组长度并按对应次数执行JavaScript函数
问题
我希望从存储在JSON中的数组获取元素数量,并按该次数执行指定函数,请问这在JavaScript中是否可行?我将数组存储在JSON中。
以下是我为单个应用编写的代码:
if (localStorage.getItem("repo")) { repo = JSON.parse(localStorage.getItem("repo")); create_app(repo.app.appName, repo.app.appIcon, repo.app.appId, repo.app.appUrl); };
对应的JSON结构(要访问的数组名为"apps"):
{ "repoName": "repo_name", "repoId": "unique_id", "repoVer": "1", "apps": [{ "appName": "first app name", "appId": "app1", "appUrl": "https://example.com", "appIcon": "https://example.com/favicon.ico" }, { "appName": "second app name", "appId": "app2", "appUrl": "https://example.org", "appIcon": "https://example.org/favicon.ico" }] }
解决方案
完全可行,你只需要遍历JSON解析后的apps数组,对数组中的每个元素调用create_app函数即可,无需单独获取元素数量再循环(当然也可以用数组长度写for循环,但直接遍历数组更直观简洁)。
修改后的代码如下:
if (localStorage.getItem("repo")) { const repo = JSON.parse(localStorage.getItem("repo")); // 遍历apps数组,为每个应用调用create_app函数 repo.apps.forEach(app => { create_app(app.appName, app.appIcon, app.appId, app.appUrl); }); };
几点说明
- 原代码里的
repo.app是错误的,你的JSON结构中并没有app字段,正确的是repo.apps数组 - 使用
forEach方法可以自动遍历数组所有元素,帮你处理循环次数,比手动写for循环更简洁 - 建议用
const声明repo变量,避免全局变量污染
内容的提问来源于stack exchange,提问作者Potter Edgerton
相关产品推荐
相关产品推荐

