数组扁平化
function flatten(arr) {
if (Array.isArray(arr)) {
let result = []
result = arr.reduce(function (result, cur) {
return result.concat(Array.isArray(cur) ? flatten(cur) : cur);
}, [])
return result;
}
}
const result = flatten([1, 2, 3, [4, 5, [6, 7]]]);
console.log(result)
对象深拷贝
function deepClone(obj) {
if (typeof obj === "undefined") return;
if (typeof obj === 'object') {
const result = Array.isArray(obj) ? [] : {};
for (key in obj) {
if (typeof obj[key] === 'object') {
result[key] = deepClone(obj[key]);
} else {
result[key] = obj[key];
}
}
return result;
} else {
return obj;
}
}
const obj1 = {
name: 'wwk',
age: 12,
hobby: ['篮球', '编程']
};
const obj2 = deepClone(obj1);
obj2['sex'] = '男';
obj2['hobby'].push('汽车');
console.log(obj1, obj2);