javascript - 加入前两个元素并创建新数组?
问题描述
在玩了几个小时的join()
andslice()
函数之后,我发现你不能在复杂的数组上使用任何一个函数。所以我来这里寻求帮助。
我正在尝试获取以下数据:
var data = [
["North", "Tennis",37, 25, 11, 9, 42, 13],
["East", "Football", 41, 2, 3, 26, 47, 21],
["South", "Rugby", 7, 22, 35, 45, 11, 46],
["West", "Rugby", 30, 21, 44, 23, 4, 47],
["North East", "Football", 35, 27, 12, 39, 34, 13],
["North West", "Football", 23, 4, 41, 35, 9, 47]
];
看起来像这样(输出):
var result = [
["North: Tennis", 37, 25, 11, 9, 42, 13],
["East: Football", 41, 2, 3, 26, 47, 21],
["South: Rugby", 7, 22, 35, 45, 11, 46],
["West: Rugby", 30, 21, 44, 23, 4, 47],
["North East: Football", 35, 27, 12, 39, 34, 13],
["North West: Football", 23, 4, 41, 35, 9, 47]
];
任何帮助,将不胜感激
解决方案
当您想将一个数组转换为另一个数组时,.map
通过获取每个子数组的前两个元素并将它们连接在一起,然后通过添加其余元素(我们在数组解构期间使用 rest 参数获取)到包含连接字符串的新数组。
let data = [
["North", "Tennis",37, 25, 11, 9, 42, 13],
["East", "Football", 41, 2, 3, 26, 47, 21],
["South", "Rugby", 7, 22, 35, 45, 11, 46],
["West", "Rugby", 30, 21, 44, 23, 4, 47],
["North East", "Football", 35, 27, 12, 39, 34, 13],
["North West", "Football", 23, 4, 41, 35, 9, 47]
];
let result = data.map(([s1, s2, ...rest]) => [`${s1}: ${s2}`, ...rest]);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
参考:
推荐阅读
- javascript - 如何仅显示 datalist 中的文本而不显示值?
- docker - 在 docker-compose up 上修改 HOST /etc/hosts
- r - 使用 system2 命令不匹配的 perl 二进制文件的问题
- reactjs - 反应- 一次只打开一个
- html - 每个选项的角度选择按钮奇怪的行为
- c++ - Arduino for循环在每个循环之间有延迟而不停止程序
- node.js - firebase 函数按次响应时间
- html - HTML 表单仅密码输入自动填充 WANTED
- swiftui - 为什么滚动视图不在顶部?
- python - 迭代由不同数据框组成的列表