递归实现:将对象所有属性值转换为字符串,复杂嵌套也不怕!
为了实现这个功能,我们可以定义一个递归函数 `stringifyValues`,它接受一个对象作为参数,并返回一个新的对象,其中所有非字符串类型的属性值都被转换成字符串。对于数组和对象类型的属性,我们将递归地调用 `stringifyValues` 函数来处理它们的元素或属性。 下面是具体的实现代码: ```javascript function isObject(value) { return value && typeof value === 'object' && !Array.isArray(value); } function isArray(value) { return Array.isArray(value); } function stringifyValues(obj) { // 检查是否为对象 if (isObject(obj)) { let newObj = {}; for (let key in obj) { if (obj.hasOwnProperty(key)) { newObj[key] = stringifyValues(obj[key]); } } return newObj; } // 检查是否为数组 else if (isArray(obj)) { return obj.map(item => stringifyValues(item)); } // 如果是其他类型,转换为字符串 else { return String(obj); } } // 测试代码 const input = { a: 1, b: { c: 2, d: '3' }, e: [4, 5, 6] }; const output = stringifyValues(input); console.log(output); // 应输出: { a: "1", b: { c: "2", d: "3" }, e: ["4", "5", "6"] } ``` 这段代码首先定义了两个辅助函数 `isObject` 和 `isArray`,用于判断给定的值是否为对象或数组。主函数 `stringifyValues` 根据传入值的类型进行不同的处理: - 如果是对象,创建一个新的对象,并对每个属性递归调用 `stringifyValues`。 - 如果是数组,使用 `map` 方法对数组中的每个元素递归调用 `stringifyValues`。 - 对于其他类型的值(如数字、布尔值等),直接使用 `String` 构造函数将其转换为字符串。 这样,无论输入对象的结构多么复杂,该函数都能正确地将所有非字符串类型的属性值转换为字符串。 ######[AI写代码神器 | 467点数解答 | 2024-11-12 09:07:17]
- 递归实现:将对象所有属性值转换为字符串!含代码示例(字节豆包 | 143点数解答 | 2024-11-08 10:25:12)375
- 递归实现:将对象所有属性值转换为字符串类型(字节豆包 | 142点数解答 | 2024-11-11 21:06:15)253
- 递归实现:将对象所有属性值转换为字符串,复杂嵌套也不怕!(阿里通义 | 467点数解答 | 2024-11-12 09:07:17)260
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)478
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)464
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)401
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)426
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)78
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)107
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Java 实现:输入 3 个学生成绩信息并计算总分与平均分(字节豆包 | 847点数解答 | 2024-10-11 08:45:50)725
- Java 实现:3 个学生成绩信息封装与总分、平均分计算(字节豆包 | 581点数解答 | 2024-11-19 15:54:02)429