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

Array.join()方法分隔符失效求助:为何未得到预期分隔符?

问题

我编写了以下JavaScript代码:

const inpobjarray = [
  {
    'books': 50
  },
  {
    'grocery': 10
  }
]

inpobjarray.forEach(i => {
  console.log({
    ...i,
    'StringToPrint': Object.entries(i).join(':')
  })
})

我预期StringToPrint字段用-拼接键与值,但实际输出仍显示默认的,分隔符,请问哪里出错了?

解答

问题出在对Object.entries()返回值的处理上:

  • Object.entries(i)会返回一个嵌套数组,比如第一个对象会得到[['books', 50]]
  • 直接调用join(':')是将外层数组的元素(也就是每个子键值对数组)转为字符串,而子数组转字符串时默认用逗号分隔内部元素,所以你得到的是books,50这类结果。

要实现用-拼接键和值,需要先遍历每个键值对,将键与值用-连接,再处理结果。修改后的代码如下:

const inpobjarray = [
  {
    'books': 50
  },
  {
    'grocery': 10
  }
]

inpobjarray.forEach(i => {
  console.log({
    ...i,
    // 先将每个键值对转为"键-值"格式,单键值对场景可省略join
    'StringToPrint': Object.entries(i).map(([key, val]) => `${key}-${val}`).join('')
  })
})

如果你的对象可能包含多个键值对,还可以在最后用join('自定义分隔符')来连接不同的键值对字符串。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:15:50