JavaScript 实现数组元素 src 转换:从原始数组到目标数组的巧妙处理
以下是实现该转换的 JavaScript 代码: ```javascript // 定义原始数组 const originalArray = [ { id: 1, src: '/1.jpg' }, { id: 2, src: 'null' }, { id: 3, src: '/2.jpg' }, { id: 4, src: 'null' }, { id: 5, src: '/3.jpg' }, { id: 6, src: 'null' } ]; // 用于存储有效的 src 值 const validSrcs = []; // 遍历原始数组,将有效的 src 值存入 validSrcs 数组 for (let i = 0; i < originalArray.length; i++) { if (originalArray[i].src!== 'null') { validSrcs.push(originalArray[i].src); } } // 用于存储最终结果的数组 const resultArray = []; // 用于记录 validSrcs 数组的索引 let validIndex = 0; // 遍历原始数组 for (let i = 0; i < originalArray.length; i++) { // 复制当前元素 const newItem = { ...originalArray[i] }; // 如果当前元素的 src 为 'null' 且还有有效的 src 值 if (newItem.src === 'null' && validIndex < validSrcs.length) { // 将有效的 src 值赋给当前元素 newItem.src = validSrcs[validIndex]; // 索引加 1 validIndex++; } // 将处理后的元素添加到结果数组中 resultArray.push(newItem); } // 处理剩余的 'null' 元素 for (let i = validIndex; i < originalArray.length; i++) { if (originalArray[i].src === 'null') { resultArray[i].src = JSON.stringify(originalArray[i]); } } console.log(resultArray); ``` 代码解释 1. 提取有效 `src` 值:遍历原始数组,将所有非 `'null'` 的 `src` 值存入 `validSrcs` 数组。 2. 生成结果数组:再次遍历原始数组,对于 `src` 为 `'null'` 的元素,依次从 `validSrcs` 数组中取出有效的 `src` 值进行替换。 3. 处理剩余 `'null'` 元素:如果还有 `src` 为 `'null'` 的元素,将其转换为 JSON 字符串并赋给 `src`。 额外需要注意的逻辑点 1. 确保 `validSrcs` 数组的索引不会越界,避免在没有有效 `src` 值时尝试访问。 2. 在处理剩余 `'null'` 元素时,要确保只处理那些还没有被替换的元素。 3. 注意 `JSON.stringify` 的使用,它会将对象转换为字符串,可能会影响后续对数据的处理。 ######[AI写代码神器 | 680点数解答 | 2025-08-04 17:09:03]
- JavaScript 实现数组元素 src 转换:从原始数组到目标数组的巧妙处理(字节豆包 | 680点数解答 | 2025-08-04 17:09:03)196
- 湖南2025届高考物理公式手册网页:优化指南与注意要点大揭秘(DeepSeek | 405点数解答 | 2025-05-28 22:10:21)175
- HTML+jQuery 实现列表元素悬停动画效果:代码详解与注意事项(字节豆包 | 475点数解答 | 2024-12-19 14:58:05)365
- HTML+jQuery:打造动态导航栏动画效果及注意事项(字节豆包 | 495点数解答 | 2024-12-19 14:58:06)315
- HTML+jQuery:打造带动态交互效果的商品展示页面(讯飞星火 | 497点数解答 | 2024-12-19 14:58:18)319
- HTML与jQuery结合:实现商品列表交互动画的首页代码解析(讯飞星火 | 497点数解答 | 2024-12-19 14:58:20)335
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Typecho 短代码:从 [emoji 图片链接] 到指定 HTML 格式的替换实现 (字节豆包 | 166点数解答 | 2025-01-25 00:26:23)244
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)458
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)264
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)13
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310