You need to enable JavaScript to run this app. 如何将对象转换为数组并按对象内c属性的数值重复生成拼接元素
优惠活动
大模型
产品
解决方案
定价
更多

如何将对象转换为数组并按对象内c属性的数值重复生成拼接元素

高效实现方案

直接复用原生API就能实现,兼顾性能和可读性,完整代码如下:

const items = { a: "arr", b: "brr", c: "3" };

// 提取除c外的属性值,空格拼接为基础元素
const baseElement = Object.entries(items)
  .filter(([key]) => key !== 'c')
  .map(([, val]) => val)
  .join(' ');

// 按c的数值生成重复元素的数组
const result = Array(Number(items.c)).fill(baseElement);

关键说明

  • 用Object.entries而非Object.values:需要通过键名过滤掉c属性,避免把重复次数的数值误拼进基础字符串,且全程不会修改原对象,无副作用
  • 用Array().fill()生成数组:这是原生实现固定长度同值数组的最优方式,性能优于手写循环push,代码更简洁。本例中基础元素是字符串(基本类型),用fill无共享引用问题;如果后续要生成的基础元素是对象/数组等引用类型,需要替换为Array.from({ length: Number(items.c) }, () => ({...baseElement}))避免引用共享问题
  • 拼接逻辑默认按对象属性的插入顺序拼接(符合ES2015+规范),和示例输入的输出完全匹配,无需额外排序
  • 如果需要兼容c为非数字的异常场景,可以把Number(items.c)调整为Number(items.c) || 0,避免生成异常数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 09:45:03