Size: a a a

2020 September 23

FL

First Name Last name in pro.js
как сделать deep copy объекта с помощью цикла без методов и спреда
источник

В

Виктория in pro.js
Переслано от Виктория
let deepCopy = (obj) => typeof obj !== 'object' || obj === null ? obj : Object.keys(obj)
   .reduce((acc, key) => {
       acc[key] = deepCopy(obj[key]);
       return acc;
   }, new obj.constructor());
источник

S

Syntax Highlight Bot in pro.js
Виктория
Переслано от Виктория
let deepCopy = (obj) => typeof obj !== 'object' || obj === null ? obj : Object.keys(obj)
   .reduce((acc, key) => {
       acc[key] = deepCopy(obj[key]);
       return acc;
   }, new obj.constructor());
источник

В

Виктория in pro.js
First Name Last name
как сделать deep copy объекта с помощью цикла без методов и спреда
^
источник

В

Виктория in pro.js
First Name Last name
как сделать deep copy объекта с помощью цикла без методов и спреда
Без каких методов?
источник

FL

First Name Last name in pro.js
Виктория
Без каких методов?
нужно сделать только на циклах можно использовать функции ))
источник

p

persona x grata in pro.js
First Name Last name
нужно сделать только на циклах можно использовать функции ))
const deepCopy = (obj) => {
   if (typeof obj !== 'object' || obj === null) {
       return obj;
   }

   let newObj = Array.isArray(obj) ? [] : {};

   for (let key in obj) {
       newObj[key] = deepCopy(obj[key]);
   }

   return newObj;
};
источник

p

persona x grata in pro.js
Но Map не будет копироваться
источник

FL

First Name Last name in pro.js
persona x grata
const deepCopy = (obj) => {
   if (typeof obj !== 'object' || obj === null) {
       return obj;
   }

   let newObj = Array.isArray(obj) ? [] : {};

   for (let key in obj) {
       newObj[key] = deepCopy(obj[key]);
   }

   return newObj;
};
Это глобальное копия ?
источник

FL

First Name Last name in pro.js
persona x grata
Но Map не будет копироваться
Если я изменю value элемент то у оригинала не будет меняться?
источник

p

persona x grata in pro.js
First Name Last name
Если я изменю value элемент то у оригинала не будет меняться?
Да
источник

FL

First Name Last name in pro.js
Array.is array (obj) если вам не сложно можете поп подробнее объяснить эту строку просто я не очень понимаю как это работает)
источник

p

persona x grata in pro.js
First Name Last name
Array.is array (obj) если вам не сложно можете поп подробнее объяснить эту строку просто я не очень понимаю как это работает)
проверка входящего объекта. массив это или объект. и по результату проверки создается литерал массива или объекта, в который скопируются значения исходника. ведь если ты хочешь скопировать массив [...], то соответственно на выходе ты хочешь массив получить. или объект
источник

FL

First Name Last name in pro.js
А это работает и с массивами и объектами тоже?
источник

FL

First Name Last name in pro.js
Просто мне казалось что это проверяет массив это или нет )
источник

p

persona x grata in pro.js
First Name Last name
А это работает и с массивами и объектами тоже?
с массивами тоже работает
источник

В

Виктория in pro.js
First Name Last name
нужно сделать только на циклах можно использовать функции ))
let deepCopy = (obj) => {
 if (typeof obj !== 'object' || obj === null) {
   return obj;
 }

 let copy =  new obj.constructor();
 let keys = Object.keys(obj);

 for (let i = 0; i < keys.length; i++) {
   copy[keys[i]] = deepCopy(obj[keys[i]]);
 }

 return copy;
}
источник

S

Syntax Highlight Bot in pro.js
Виктория
let deepCopy = (obj) => {
 if (typeof obj !== 'object' || obj === null) {
   return obj;
 }

 let copy =  new obj.constructor();
 let keys = Object.keys(obj);

 for (let i = 0; i < keys.length; i++) {
   copy[keys[i]] = deepCopy(obj[keys[i]]);
 }

 return copy;
}
источник

p

persona x grata in pro.js
Виктория
let deepCopy = (obj) => {
 if (typeof obj !== 'object' || obj === null) {
   return obj;
 }

 let copy =  new obj.constructor();
 let keys = Object.keys(obj);

 for (let i = 0; i < keys.length; i++) {
   copy[keys[i]] = deepCopy(obj[keys[i]]);
 }

 return copy;
}
во четко. лодаш отдыхает
источник

В

Виктория in pro.js
persona x grata
во четко. лодаш отдыхает
Очень непривычно было спустя столько времени писать императивный цикл
источник