You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定JS字符串转换为目标JSON格式?仅用map无法实现

如何将逗号分隔的数字字符串转换为成对键值的JSON对象?

给定如下JavaScript字符串:

let str = '1,2,3,4,5,6,7,8,9,0';

需要将其转换为如下结构的JSON对象:

{
   "1": "2",
   "3": "4",
   "5": "6",
   "7": "8",
   "9": "0"
}

注:仅使用map函数无法解决此问题,求实现方法。


方法1:使用reduce函数

reduce是处理这类“数组转对象”场景的理想工具,先将字符串分割为数组,再按每两个元素一组构建键值对:

let str = '1,2,3,4,5,6,7,8,9,0';
const arr = str.split(',');
const result = arr.reduce((acc, curr, index) => {
  // 仅处理偶数索引元素,将其作为键,下一个元素作为对应值
  if (index % 2 === 0) {
    acc[curr] = arr[index + 1];
  }
  return acc;
}, {});

console.log(result);
// 输出: { '1': '2', '3': '4', '5': '6', '7': '8', '9': '0' }

方法2:普通for循环遍历

如果觉得reduce不够直观,可使用步长为2的for循环直接构建对象:

let str = '1,2,3,4,5,6,7,8,9,0';
const arr = str.split(',');
const result = {};

// 每次循环跳过一个元素,处理成对的键值
for (let i = 0; i < arr.length; i += 2) {
  result[arr[i]] = arr[i + 1];
}

console.log(result);

额外说明

  • 若需要将值转为数字类型,可修改赋值语句为result[arr[i]] = Number(arr[i + 1])
  • 建议提前判断原字符串分割后的数组长度是否为偶数,避免出现无对应值的键(或无对应键的值)

内容的提问来源于stack exchange,提问作者james lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:25:29