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

JavaScript如何拆分字符串数组并返回单个键值对格式对象

实现字符串数组转翻译键值对对象的方案

问题原因

你的实现存在两个核心问题:

  • map()方法会返回新数组,无法直接得到对象类型的结果
  • 写{key: value}时,JS会把key作为固定字面量键名,不会读取你解构得到的key变量的值,要使用变量作为键需要用计算属性语法 { [key]: value }

实现方案

方案1:使用Array.reduce(兼容性最好,全JS版本支持)

const translations = [ 
  'Back to Main Window: Retour à la fenêtre principale',
  'All Client Groups: Tous les groupes de clients',
  'Filter by Client: Filtrer par client' 
]

const result = translations.reduce((acc, current) => {
  // 仅拆分第一个冒号,避免value本身包含冒号时解析错误
  const [key, ...valueFragments] = current.split(':')
  // 去除首尾多余空格后写入对象
  acc[key.trim()] = valueFragments.join(':').trim()
  return acc
}, {})

方案2:使用Object.fromEntries(ES2019+支持,写法更简洁)

const result = Object.fromEntries(
  translations.map(item => {
    const [key, ...valueFragments] = item.split(':')
    return [key.trim(), valueFragments.join(':').trim()]
  })
)

两种方案最终输出的result都和你期望的格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:45:03