以下是实现该转换的 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` 的使用,它会将对象转换为字符串,可能会影响后续对数据的处理。 [2025-08-04 17:09:03 | AI写代码神器 | 680点数解答]