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

数组对象遍历:按数值生成对应星号拼接数值的问题排查

解决JavaScript数组对象生成对应数量星号的问题

问题描述

遍历包含对象的数组,根据每个对象中item的数值生成对应数量的星号,再拼接该数值(例如数值2对应**2),输出指定格式结果。

期望输出:

**2
******6
****4
***3

当前代码及错误输出:

let arr = [
  {'item': 2},
  {'item': 6},
  {'item': 4},
  {'item': 3},
]

for(let i = 0; i < arr.length; i++) {
  let obj = arr[i]
  for(let key in obj) {
   let x = '*' + obj[key]
   console.log(x)
  }
}

错误输出:

*2
*6
*4
*3

解决方法

核心问题是你只生成了1个星号,而非对应数值数量的星号。可以使用字符串的repeat()方法,根据item的数值重复星号后再拼接数值即可。

修正后的基础版本代码

let arr = [
  {'item': 2},
  {'item': 6},
  {'item': 4},
  {'item': 3},
]

for(let i = 0; i < arr.length; i++) {
  let obj = arr[i]
  for(let key in obj) {
    // 用repeat生成对应数量的星号,再拼接数值
    let x = '*'.repeat(obj[key]) + obj[key]
    console.log(x)
  }
}

更简洁的遍历写法

如果不需要兼容过旧的JavaScript环境,可以用数组forEach方法简化代码:

let arr = [
  {'item': 2},
  {'item': 6},
  {'item': 4},
  {'item': 3},
]

arr.forEach(obj => {
  const count = obj.item;
  console.log('*'.repeat(count) + count);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:15:11