加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
index.js 1.80 KB
一键复制 编辑 原始数据 按行查看 历史
// 递归实现深拷贝方法
/**
* 深度克隆一个对象。
* @param {Object} obj 要进行深度克隆的对象。
* @returns {Object} 返回obj的深度克隆副本。如果obj不是对象,则直接返回obj。
*/
const deepClone = (obj) => {
// 当obj是对象时,进行深度克隆
return obj instanceof Object ? Object.keys(obj).reduce((acc, cur) => {
// 递归克隆对象的每个属性
acc[cur] = deepClone(obj[cur]);
return acc;
}, {}) : obj;
};
// 测试深克隆函数
const obj1 = {"s":1,"d":2}
const obj2 = deepClone(obj1)
console.log(obj2);
console.log(obj1);
console.log(obj2 == obj1); // 输出false,证明obj2和obj1不是同一个对象的引用
// 数组冒泡排序方法
const arrpaix = (arr) => {
// 遍历数组,每次比较相邻的两个元素并交换位置,将较大的元素逐渐往后移动
for(let i = 0; i < arr.length; i++) {
for(let j = 0; j < arr.length - 1; j++) {
if(arr[j] > arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
// 数组选择排序方法
const arrsele = (arr) => {
// 遍历数组,每次找到剩余元素中的最小值并与其当前位置的元素交换位置
for(let i = 0; i < arr.length; i++) {
let min = arr[i];
let minIndex = i;
for(let j = i + 1; j < arr.length; j++) {
if(arr[j] < min) {
min = arr[j];
minIndex = j;
}
}
let temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
console.log(arrpaix([1,2,3,4,5,9,4,31,12,0])); // 输出排序后的数组
console.log(arrsele([1,2,3,4,5,9,4,31,12,0])); // 输出排序后的数组
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化