javascript - copie approfondie et affectation de l'objet js
扔个三星炸死你
扔个三星炸死你 2017-07-05 11:04:38
0
4
936

Dans le code, un tableau arr=[1,2,3] est obtenu ;
Comme il sera détruit immédiatement, il ne peut pas être directement affecté à l'objet Obj.a.
Comment écrire jquery dans ce cas pour que Obj .a= après la destruction de l'arr ? [1,2,3] ?

扔个三星炸死你
扔个三星炸死你

répondre à tous(4)
仅有的幸福

En général, il est rare de rencontrer "destroy" en JS. Alors, je ne comprends pas ce que tu entends par destruction immédiate ?

S'il s'agit de delete arr, alors il n'y a aucun problème avec l'affectation directe, comme indiqué ci-dessous :

Si tu veux changer arr 的内容。那么可以复制一个数组(有几种方法,concat Ce n'est qu'un d'entre eux)

Obj.a = [].concat(arr);

Si vous avez vraiment besoin d'une copie complète, jQuery.fn.clone(), mais cela semble avoir certaines restrictions.

Pour les autres données, il est encore un peu difficile et gênant d'écrire soi-même une copie complète. Il est préférable d'utiliser le cloneDeep() de Lodash

.
Ty80

Copier le tableau :

Utilisez des tranches

obj.a = arr.slice(); 

Utiliser JSON

obj.a = JSON.parse(
    JSON.stringify(arr)
); 

巴扎黑

Je ne comprends pas ce que tu veux dire par le détruire. . . .
Quant à la copie profonde :

function cloneObj(obj){
    if( !obj || typeof obj == "string" ){
        return obj;
    } else if ( obj instanceof Array ){
        return [].concat(obj);
    } else {
        var tempObj = {};
        for( var key in obj ){
            tempObj[key] = cloneObj(obj[key]);
        }
        return tempObj;
    }
}
滿天的星座

Si vous utilisez ES2015, vous pouvez utiliser l'opérateur de propagation d'objet pour copier.

obj.a = [...arr]
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal