如何通过dialogID匹配JSON中的content_id并返回对应影片数据?
实现按content_id匹配并打印对应影片JSON数据
修改JavaScript函数逻辑
你只需要在获取到JSON数据后,通过数组的find()方法匹配与传入dialogID一致的content_id,就能精准定位到目标影片数据。以下是修改后的完整代码:
function toggleDialog(dialogID) { fetch('api.json') .then(response => { if (!response.ok) { throw new Error(`请求失败,状态码:${response.status}`); } return response.json(); }) .then(data => { // 匹配content_id与dialogID一致的影片 // 若content_id为数字类型,可将dialogID转为数字:Number(dialogID) const targetMovie = data.movies.find(movie => movie.content_id == dialogID); if (targetMovie) { console.log('目标影片数据:', targetMovie); } else { console.log(`未找到content_id为${dialogID}的影片`); } }) .catch(error => console.error('加载数据出错:', error)); }
关键说明
- 匹配逻辑:
Array.find()会遍历movies数组,返回第一个满足content_id == dialogID条件的元素 - 类型兼容:如果JSON中
content_id是数字,而dialogID是字符串(HTML元素ID默认是字符串),使用==做松散匹配即可,或者用===配合Number(dialogID)做严格匹配更严谨 - 错误处理:增加了请求失败的捕获,以及未找到目标影片的提示,避免控制台无输出或报错
确认HTML按钮参数
确保按钮传入的dialogID是正确的content_id,示例写法:
<button onclick="toggleDialog('456')">编辑影片456</button>
内容的提问来源于stack exchange,提问作者Dafrii
相关产品推荐
相关产品推荐

