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

如何不使用临时变量,用Array.from单行写法生成对象数组?

优化后的写法

你可以直接利用数组方法的内置能力,避免使用临时变量,以下是几种更简洁的方案:

方案1:使用Array.from的映射参数

Array.from支持第二个参数作为映射函数,直接生成目标数组,无需额外的forEach和push操作:

const data = Array.from({ length: 1 }, () => ({
  number: Math.floor(Math.random() * 10)
}));

console.log(data);

方案2:Array.fill + map

先创建指定长度的数组并填充占位值,再通过map生成每个对象:

const data = Array(1).fill().map(() => ({
  number: Math.floor(Math.random() * 10)
}));

console.log(data);

注:Array(1)创建的是空数组,fill()会将其填充为[undefined],这样map才能遍历到元素。

方案3:展开运算符 + map

通过展开运算符将空数组转为可遍历的数组,再用map生成结果:

const data = [...Array(1)].map(() => ({
  number: Math.floor(Math.random() * 10)
}));

console.log(data);

这些写法都直接生成目标数组,代码更紧凑,也符合函数式编程的思路,避免了不必要的临时变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:50:19