Rumah  >  Soal Jawab  >  teks badan

javascript - salinan dan tugasan dalam objek js

Dalam kod, array arr=[1,2,3] diperolehi;
Oleh kerana ia akan dimusnahkan serta-merta, ia tidak boleh diberikan terus kepada objek Obj.a.
Cara menulis jquery dalam kes ini supaya Obj .a= selepas arr dimusnahkan?

扔个三星炸死你扔个三星炸死你2687 hari yang lalu927

membalas semua(4)saya akan balas

  • 仅有的幸福

    仅有的幸福2017-07-05 11:06:38

    Secara amnya, jarang ditemui "musnah" dalam JS. Kemudian, saya tidak faham apa yang anda maksudkan dengan kemusnahan segera?

    Jika ia merujuk kepada delete arr, maka tiada masalah dengan tugasan langsung, seperti yang ditunjukkan di bawah:

    Jika anda ingin berubah arr 的内容。那么可以复制一个数组(有几种方法,concat Ia hanya salah satu daripadanya)

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

    Jika anda benar-benar memerlukan salinan dalam, jQuery.fn.clone(), tetapi ia nampaknya mempunyai beberapa sekatan.

    Untuk data lain, masih agak sukar dan menyusahkan untuk menulis salinan mendalam sendiri. Lebih baik gunakan cloneDeep() Lodash

    balas
    0
  • PHP中文网

    PHP中文网2017-07-05 11:06:38

    Salin tatasusunan:

    Guna hirisan

    obj.a = arr.slice(); 

    Gunakan JSON

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

    balas
    0
  • 巴扎黑

    巴扎黑2017-07-05 11:06:38

    Saya tidak faham apa yang anda maksudkan dengan memusnahkannya. . . .
    Bagi salinan dalam:

    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;
        }
    }

    balas
    0
  • 滿天的星座

    滿天的星座2017-07-05 11:06:38

    Jika anda menggunakan ES2015, anda boleh menggunakan operator penyebaran objek untuk menyalin.

    obj.a = [...arr]

    balas
    0
  • Batalbalas