代码拉取完成,页面将自动刷新
// 递归实现深拷贝方法
/**
* 深度克隆一个对象。
* @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])); // 输出排序后的数组
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。