收集帛书碎片
介绍
三叔在外出考古途中无意发现了一份战国帛书,帛书边缘有被明显裁剪过的痕迹,单从帛书片段,提到记录了神秘文物的地点,无奈帛书不完整,为了早日将文物带回博物馆,三叔号召当地村民闷油瓶、王胖子、潘子共同寻找剩余帛书碎片,相约一炷香后再聚。
本题需要在已提供的基础项目中使用 JS 知识封装一个函数,达到收集帛书碎片的要求。
在浏览器中预览 index.html
页面,显示如下所示:
目标
请在 collect-puzzle.js
文件中补全函数 collectPuzzle
中的代码,返回包含不同帛书碎片的数组,最终拼出完整的战国帛书,需要注意:
- 同一个人收集的帛书碎片可能是有重复的。
- 同一组内不同的人收集的帛书碎片也可能是有重复的。
- 工具函数需要统计所有人获取的不同帛书碎片,而不是帛书碎片数量。
例如:
var arr1 = ["灾变", "四时运转", "天象"];
var arr2 = ["四时运转"];
var result1 = collectPuzzle(arr1, arr2);
console.log(result1); // 输出:["灾变","四时运转","天象"]
// 同一组内的拼图不能重复计算
var arr3 = ["灾变", "灾变", "天象"];
var arr4 = ["灾变", "月令禁忌", "天象"];
var result2 = collectPuzzle(arr3, arr4);
console.log(result2); // 输出:["灾变", "天象","月令禁忌"]
[copy]
上述仅为示例代码,判题时会随机提供数组对该函数功能进行检测。
在题目所提供的数据的情况下,完成后的效果如下:
题解
function collectPuzzle(...puzzles) {
// TODO:在这里写入具体的实现逻辑
// 对所有的拼图进行收集,获取不同拼图类型的结果,并返回
// 使用 flat 将嵌套数组展平
let flatArray = puzzles.flat();
// 使用 Set 来获取不重复的值,使用...将Set转化成数组
let uniqueValues = [...new Set(flatArray)];
// 对所有的拼图进行收集,获取不同拼图类型的结果,并返回
return uniqueValues
}
// 检测需要,请勿删除
module.exports = collectPuzzle;