javascript - 将单个数组转换为二维数组乘以 6
问题描述
我正在尝试将我的单个数组转换并合并为二维数组。我为此使用地图,但我无法实现我想要的输出。我可以就如何实现这一目标提出任何建议吗?
数据如下:
var singelArr = ['a','b','c','d','e','f','a','b','c','d','e','f','a','b','c','d','e','f'];
var doubleArr = [
['','','','','',''],
['','','','','',''],
['','','','','',''],
['','','','','',''],
['','','','','',''],
]
现在我的预期输出是:
output = [
['a','b','c','d','e','f'],
['b','c','d','e','a','f'],
['b','c','d','e','a','f'],
['','','','','',''],
['','','','','','']
];
到目前为止我所做的是https://jsfiddle.net/jc3v25bs/。我可以将数据元素显示为 6,但问题是我不确定如何将它合并到我的doubleArr
变量中。我也更喜欢循环更快的东西。
任何想法都非常感谢。谢谢你。
解决方案
您可以使用该slice()
函数拆分第一个数组。然后,您可以通过将结果与第二个数组的最后一部分连接起来来创建输出。
let singleArr = ['a','b','c','d','e','f','a','b','c','d','e','f','a','b','c','d','e','f'];
let doubleArr = [
['','','','','',''],
['','','','','',''],
['','','','','',''],
['','','','','',''],
['','','','','',''],
];
let chunkedArr = [];
for(i=0,j=0; i<singleArr.length; i+=6, j++){
chunkedArr[j] = singleArr.slice(i, i+6);
}
let output = chunkedArr.concat(doubleArr.slice(chunkedArr.length));
console.log(output);
推荐阅读
- python-3.x - Sublime 教科书中的 Python 模块不起作用
- javascript - 如何在无需登录的情况下从访问我网页的每个用户那里获取唯一 ID?
- reactjs - 如何在 React 中使用表单发出 post 请求
- javascript - 滚动事件没有同时发生
- flutter - Error:Unable to 'pub upgrade' flutter tool The current Dart SDK version is 2.5.0
- python - TypeError:训练 Yolo 模型时无法将符号 Keras 输入/输出转换为 numpy 数组
- ruby - 在 Ruby 中使用 selenium 进行远程连接时的 Net::ReadTimeout
- python - 在 Python 中将语音转换为文本时出错
- typescript - 这是一个正确的打字稿可选类型吗?
- devops - 无论环境部署如何,Github Action 都可以获取工作流状态