You need to enable JavaScript to run this app. 如何将对象中数组内管道符连接的属性值拆分为逗号分隔的数组项
优惠活动
大模型
产品
解决方案
定价
更多

如何将对象中数组内管道符连接的属性值拆分为逗号分隔的数组项

问题原因

你的代码存在3个核心问题:

  1. 没有提前判断值的类型,字符串类型的uniqueId调用join()方法会直接抛出类型错误,中断代码执行
  2. 只给包含|的属性赋值到新对象,不包含|的数组属性(比如shape)、非数组属性都没有被复制到新对象中
  3. 遍历对象键时使用了map,你不需要生成新数组,单纯遍历用forEach更合理

修复代码

先判断属性值是否为数组,是数组的话再做拆分逻辑,非数组直接原样赋值,不管数组里有没有|都统一处理,避免漏字段:

const pipeToCommaObject = {};

Object.keys(objectValues).forEach(key => {
  const value = objectValues[key];
  // 非数组类型直接原样赋值
  if (!Array.isArray(value)) {
    pipeToCommaObject[key] = value;
    return;
  }
  // 数组类型先转成字符串再按|拆分
  pipeToCommaObject[key] = value.join().split('|');
});

也可以用Object.fromEntries写得更简洁:

const pipeToCommaObject = Object.fromEntries(
  Object.entries(objectValues).map(([key, value]) => {
    if (!Array.isArray(value)) return [key, value];
    return [key, value.join().split('|')];
  })
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 13:24:03