Comments (8)
const deepClone = (data) => {
var obj;
if (isArray(data)) {
obj = [];
} else if (isObject(data)) {
obj = {};
} else {
//不再具有下一层次
return data;
}
if (isArray(data)) {
for (var i = 0, len = data.length; i < len; i++) {
obj.push(deepClone(data[i]));
}
} else if (isObject(data)) {
for (var key in data) {
obj[key] = deepClone(data[key]);
}
}
return obj;
};
>
from frontend-interview.
function demo(obj) {
if (typeof obj !== 'object') return obj;
let result = obj instanceof Array ? [] : {};
for (const key in obj) {
result[key] = typeof obj[key] === 'object' ? demo(obj[key]) : obj[key];
}
return result;
}
from frontend-interview.
function deepClone(obj){
var rest=JSON.parse(JSON.sringify(obj));
return rest;
}
from frontend-interview.
from frontend-interview.
function deepClone(obj) { if (typeof obj !== 'object' || obj == null) { return obj } var res if (Array.isArray(obj)) { res = [] } else { res = {} } for (const key in obj) { if (obj.hasOwnProperty(key)) { res[key] = deepClone(obj[key]) } } return res }
from frontend-interview.
function deepClone(obj = {}) {
if (typeof obj !== "object" || obj == null) return obj;
let result = obj instanceof Array ? [] : ({});
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
result[key] = deepClone(obj[key]);
}
}
return result;
}
from frontend-interview.
function deepClone(obj, hash = new WeakMap()) {
if (obj === null) {
return obj
}
if (obj instanceof Date) {
return new Date(obj)
}
if (obj instanceof RegExp) {
return new RegExp(obj)
}
if (obj instanceof Error) {
return new Error(obj.message)
}
if (typeof obj !== 'object') {
return obj
}
// 防止循环引用
if (hash.has(obj)) {
return hash.get(obj)
}
hash.set(obj, obj)
let newObj = Object.create(null)
const keys = Reflect.ownKeys(obj)
for (const key of keys) {
const val = obj[key]
if (typeof val === 'object') {
newObj[key] = deepClone(val, hash)
} else {
newObj[key] = val
}
}
return newObj
}
from frontend-interview.
function deepClone(obj, hash = new WeakMap()) { if (obj === null) { return obj } if (obj instanceof Date) { return new Date(obj) } if (obj instanceof RegExp) { return new RegExp(obj) } if (obj instanceof Error) { return new Error(obj.message) } if (typeof obj !== 'object') { return obj } // 防止循环引用 if (hash.has(obj)) { return hash.get(obj) } hash.set(obj, obj) let newObj = Object.create(null) const keys = Reflect.ownKeys(obj) for (const key of keys) { const val = obj[key] if (typeof val === 'object') { newObj[key] = deepClone(val, hash) } else { newObj[key] = val } } return newObj }
Array
from frontend-interview.
Related Issues (20)
- JS 作用域链相关问题 HOT 5
- JS 作用域、原型链 HOT 3
- 重复声明两个函数会怎样? HOT 4
- ES5中“严格模式”与“非严格模式”的区别? HOT 3
- ajax请求序列化问题 HOT 5
- 循环/闭包/setTimeout/Promise 综合 HOT 1
- 服务端如何区分不同的用户 HOT 4
- 使用ES6实现该方法 HOT 13
- dom操作相关 HOT 7
- 什么是FP?与OOP的关系?
- 为何会出现浏览器兼容性问题?如何解决? HOT 2
- 前端性能优化 HOT 2
- JavaScript 分组 HOT 13
- 自适应和响应式有什么区别和联系
- 如何实现深拷贝? HOT 1
- 两个js数组相关题目 HOT 7
- 面试题汇总
- jrg interview questions HOT 7
- 宏任务微任务题 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from frontend-interview.