Array.reduce ниже скорость и выше потребление памяти.
if (getProduct.product_attributes){
let objSwap = [];
let objTemp;
for(let i = 0; i < getProduct.product_attributes.length;i++){
if (getProduct.product_attributes[i].name == 'Size'){
objSwap[0] = i;
}
if (getProduct.product_attributes[i].name == 'Colors'){
objSwap[1] = i;
}
}
if (objSwap[0] < objSwap[1]){
objTemp = JSON.parse(JSON.stringify(getProduct.product_attributes[objSwap[0]]));
getProduct.product_attributes[objSwap[0]] = JSON.parse(JSON.stringify(getProduct.product_attributes[objSwap[1]]));
getProduct.product_attributes[objSwap[1]] = JSON.parse(JSON.stringify(objTemp));
}
}
Для глубокого копирования stringify/parse обычно и используют же
Да, но это вроде как не быстрое дело.
structuredClone() вылупился уже, какой стрингифай
Не знаю, что там кто обычно использует, но если enumerable: true то всё работает: const object = { a: 'qwerty', b: 42, c: false, d: { test1: 123, test2: { nested1: 42, nested2: { foo: 'bar' } }, test3: 'qwe' } }; const clone = Object.assign({}, object); console.log(clone.d.test2);
А что на счёт среза при таком клонировании?
slice()
он спросил как ускорить, я ему ответил
Я на этом эпизоде включился https://t.me/nodejs_ru/896026
Обсуждают сегодня