一、数组拉平

function arrayFlat(arr) {
return arr.reduce((pre, cur) => {
const temp = Array.isArray(cur) ? arrayFlat(cur) : cur;
return pre.concat(temp);
}, []);
}
const result = arrayFlat([1, [2, 3], [4, [5, 6, [8]], 7]]);
console.log(result); // 数组拉平 es6 flat
// const arr = [1, [2, 3], [4, [5, 6, [8]], 7]];
// // console.log(arr.flat());
// console.log(arr.flat(2));
// console.log(arr.flat(3));
// [1, [2, [3]]].flat(Infinity);

二、打乱数组

// 方法1
function ArrayBreak1(arr) {
const $arr = [...arr];
return $arr.sort(() => Math.random() - 0.5);
} console.log(ArrayBreak1([1, 2, 3, 4, 5, 6])); // 方法2
function ArrayBreak2(arr) {
const $arr = [...arr];
const result = [];
while ($arr.length) {
const index = Math.floor(Math.random() * $arr.length);
result.push($arr[index]);
$arr.splice(index, 1);
}
return result;
} console.log(ArrayBreak2([1, 2, 3, 4, 5, 6]));

最新文章

  1. GitHub实战系列~4.把github里面的库克隆到指定目录+日常使用 2015-12-11
  2. zabbix 中监控windows 的typepref中的值
  3. Nova 组件如何协同工作 - 每天5分钟玩转 OpenStack(24)
  4. android 时间 格式
  5. HTML、CSS、JS在前端开发中都扮演怎样的角色
  6. easyUI layout 中使用tabs+iframe解决请求两次方法
  7. Redis 笔记与总结1 安装部署
  8. Log4j 使用总结
  9. DB2操作流程
  10. BOM(制造数据管理)
  11. android ListView_Tiger
  12. java里int和Integer什么区别
  13. Linux shell 脚本攻略之创建不可修改文件
  14. 【Android 复习】:AndroidManifest.xml 文件详解
  15. TIdTCPClient 详解
  16. 【2017-02-26】String类、Math类、DateTime类
  17. Day13 CSS的与应用
  18. React 入门学习笔记整理(三)—— 组件
  19. open():打开文件
  20. shell 命令 grep -v

热门文章

  1. mybatis字符#与字符$的区别
  2. vue项目打包后在IE浏览器报错,页面显示空白
  3. linux命令详解——ftp
  4. 20、Nginx高可用架构
  5. 18、nginx优化
  6. 2019.9.19HTML基础
  7. 未能加载文件或程序集“System.Web.Http.WebHost
  8. HDU4456-Crowd (坐标旋转处理+hash处理+二维树状数组)
  9. 程序流程图、N-S图、PAD图
  10. python_自动化测试用例参数化