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

如何用Ruby将指定数组转换为目标数组(新手友好版)

数组转换的新手友好实现方法

先明确需求:
原始数组:

const originalArr = [["10"], ["20"], ["30"], ["40"], ["21"], ["31"], ["41"], ["32"], ["42"], ["43"]];

目标数组:

[[1, 0], [2, 0], [3, 0], [4, 0], [2, 1], [3, 1], [4, 1], [3, 2], [4, 2], [4, 3]]

方法一:基础for循环(最容易理解遍历过程)

这是对新手最友好的方式,每一步逻辑清晰可控:

// 1. 定义原始数组
const originalArr = [["10"], ["20"], ["30"], ["40"], ["21"], ["31"], ["41"], ["32"], ["42"], ["43"]];
// 2. 创建空数组存储转换后的结果
const resultArr = [];

// 3. 遍历原始数组的每一项
for (let i = 0; i < originalArr.length; i++) {
  // 取出当前子数组里的字符串(比如["10"]里的"10")
  const str = originalArr[i][0];
  // 拆分字符串为单个字符,再转换为数字
  const num1 = Number(str[0]);
  const num2 = Number(str[1]);
  // 把两个数字组成新数组,添加到结果数组中
  resultArr.push([num1, num2]);
}

console.log(resultArr); // 输出就是目标数组

方法二:forEach遍历(更简洁的遍历方式)

如果已经理解了遍历逻辑,可以用forEach简化代码:

const originalArr = [["10"], ["20"], ["30"], ["40"], ["21"], ["31"], ["41"], ["32"], ["42"], ["43"]];
const resultArr = [];

originalArr.forEach(item => {
  const str = item[0];
  resultArr.push([Number(str[0]), Number(str[1])]);
});

console.log(resultArr);

关键步骤说明

  • originalArr[i][0]:原始数组的每一项都是仅含一个元素的子数组,所以要先提取出子数组里的字符串。
  • Number(str[0]):把字符串的第一个字符转换成数字,比如"10"的第一个字符是"1",转换后得到数字1。
  • push():将新生成的子数组添加到结果数组的末尾,逐步构建出目标数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:50:21