javascript - 重构更简洁和高性能的代码
问题描述
我想以乘法表的形式创建一个多维数组。表长度将是唯一的参数。因此,如果参数 n = 4,则预期输出将是 -
[[1,2,3,4],[2,4,6,8],[3,6,9,12],[4,8,12,16]]
这是我的解决方案,但我觉得它可以更简洁和高效......
let array = [];
let indexes = n;
let groups = n;
//---Loop for the groups
for(let g = 0; g < groups; g++){
//---Create multidimensional array
array[g] = [];
//---Loop for the indexes of the each group
for(let i = 0; i < indexes; i++){
array[g][i] = (g + 1) * (i + 1);
}
}
return array;
};
解决方案
您可以Array.from
使用内置的映射器。
const
getTable = length => Array.from(
{ length },
(_, i) => Array.from(
{ length },
(__, j) => (i + 1) * (j + 1)
)
);
getTable(4).forEach(a => console.log(...a));
getTable(3).forEach(a => console.log(...a));
推荐阅读
- ruby-on-rails - Rails 5:在范围内使用模型函数
- python - 尝试使用python将输入的UTC时间转换为太平洋时间
- reactjs - 什么在构建期间呈现 Create React App html 模板
- javascript - 由于过滤器导致表达式更改,*ngIf 的渲染延迟 - Angular
- c# - 从服务器执行查询时的记录数不同
- xcode - Xcode 11 - 模拟器不会响应
- xpath - 当我提出稍微复杂的请求时,Google 表格中的 IMPORTXML 返回 N/D
- javascript - 使用 twilio javascript 客户端呼叫号码时捕获接受事件
- bash - 如果服务器在 bash 中不可 ping,如何抛出错误
- azure-active-directory - Azure 资源管理 api 仅检索当前租户