如何将数值范围中的数字拆分为单个数字存入数组?
问题解决方案
你的代码问题在于:arr.push(arrPsh)是把每个数字拆分后的子数组直接推入主数组,导致arr变成了二维数组(比如[["1","4"],["1","5"],["1","6"]]),你看到的输出里的额外逗号就是子数组之间的分隔。另外拆分出来的元素是字符串类型,和你示例中的数字类型也不匹配。
修正后的代码(两种可选方式)
方式一:使用扩展运算符推送单个元素
let min = 14, max = 16, arr = []; for (let i = min; i <= max; i++) { // 拆分字符串并转成数字,用扩展运算符逐个推入主数组 arr.push(...i.toString().split("").map(num => parseInt(num, 10))); } console.log(arr); // 输出:[1,4,1,5,1,6]
方式二:使用concat合并数组
let min = 14, max = 16, arr = []; for (let i = min; i <= max; i++) { const splitNums = i.toString().split("").map(num => parseInt(num, 10)); arr = arr.concat(splitNums); } console.log(arr); // 输出:[1,4,1,5,1,6]
关键说明
i.toString().split(""):将数字转为字符串后拆分为单个字符的数组(比如14 → ["1","4"]).map(num => parseInt(num, 10)):把拆分得到的字符串转为数字类型(如果不需要数字,可省略此步骤)...扩展运算符/concat:将子数组中的单个元素合并到主数组,避免主数组变成二维结构
内容的提问来源于stack exchange,提问作者Cove
相关产品推荐
相关产品推荐

