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