Tetapkan elemen array ke objek javascript

Saat kita perlu menyalin array, kita sering menggunakan slice. Tetapi dengan ES6, Anda juga dapat menggunakan operator spread untuk menduplikat array. Lumayan bagus kan 🤩

const sheeps = ['🐑', '🐑', '🐑'];

// Old way
const cloneSheeps = sheeps.slice();

// ES6 way
const cloneSheepsES6 = [...sheeps];

Mengapa Saya Tidak Dapat Menggunakan = untuk Menyalin Array?

Karena array di JS adalah nilai referensi, jadi ketika Anda mencoba menyalinnya menggunakan = itu hanya akan menyalin referensi ke array asli dan bukan nilai array. Untuk membuat salinan asli dari array, Anda perlu menyalin nilai array di bawah variabel nilai baru. Dengan begitu array baru ini tidak merujuk ke alamat array lama di memori

const sheeps = ['🐑', '🐑', '🐑'];

const fakeSheeps = sheeps;
const cloneSheeps = [...sheeps];

console.log(sheeps === fakeSheeps);
// true --> it's pointing to the same memory space

console.log(sheeps === cloneSheeps);
// false --> it's pointing to a new memory space
_

Masalah dengan Nilai Referensi

Jika Anda pernah berurusan dengan Redux atau kerangka manajemen negara apa pun. Anda akan tahu bahwa kekekalan itu sangat penting. Izinkan saya menjelaskan secara singkat. Objek yang tidak dapat diubah adalah objek yang statusnya tidak dapat diubah setelah dibuat. Masalah dengan JavaScript adalah arrays bisa berubah. Jadi ini bisa terjadi

const sheeps = ['🐑', '🐑'];

const sheeps2 = sheeps;

sheeps2.push('🐺');

console.log(sheeps2);
// [ '🐑', '🐑', '🐺' ]

// Ahhh 😱 , our original sheeps have changed?!
console.log(sheeps);
// [ '🐑', '🐑', '🐺' ]

Itu sebabnya kita perlu mengkloning sebuah array

const sheeps = ['🐑', '🐑'];

const sheeps2 = [...sheeps];

// Let's change our sheeps2 array
sheeps2.push('🐺');

console.log(sheeps2);
// [ '🐑', '🐑', '🐺' ]

// ✅ Yay, our original sheeps is not affected!
console.log(sheeps);
// [ '🐑', '🐑' ]

Tipe Data yang Dapat Diubah vs Tidak Dapat Diubah

Yg mungkin berubah

  • obyek
  • Himpunan
  • fungsi

Kekal

Semua primitif tidak dapat diubah

  • rangkaian
  • nomor
  • boolean
  • batal
  • belum diartikan
  • simbol

Salinan Dangkal Saja

Harap dicatat spread hanya sedalam satu level saat menyalin array. Jadi jika Anda mencoba menyalin array multidimensi, Anda harus menggunakan alternatif lain

const nums = [[1, 2], [10]];

const cloneNums = [...nums];

// Let's change the first item in the first nested item in our cloned array.
cloneNums[0][0] = '👻';

console.log(cloneNums);
// [ [ '👻', 2 ], [ 10 ], [ 300 ] ]

// NOOooo, the original is also affected
console.log(nums);
// [ [ '👻', 2 ], [ 10 ], [ 300 ] ]
_

🤓 Inilah hal menarik yang saya pelajari. Salinan dangkal berarti level pertama disalin, level yang lebih dalam direferensikan

Masukan Komunitas

const sheeps = ['🐑', '🐑', '🐑']; const fakeSheeps = sheeps; const cloneSheeps = [...sheeps]; console.log(sheeps === fakeSheeps); // true --> it's pointing to the same memory space console.log(sheeps === cloneSheeps); // false --> it's pointing to a new memory space _0 adalah Cara Lain untuk Mengkloning Array

const sheeps = ['🐑', '🐑', '🐑'];

const cloneSheeps = Array.from(sheeps);
_

_Terima kasih. @hakankaraduman_

  • _@hakankaraduman. _ ya, saya mencoba untuk tidak menggunakan spread, itu membuat saya bingung ketika membaca kode karena melakukan dua hal, menyebarkan atau mengumpulkan sesuai konteks

  • CJ J. Saya pikir cara terbaik adalah yang paling cocok dengan semantik operasi. Saya lebih suka menggunakan

    const sheeps = ['🐑', '🐑', '🐑'];
    
    const fakeSheeps = sheeps;
    const cloneSheeps = [...sheeps];
    
    console.log(sheeps === fakeSheeps);
    // true --> it's pointing to the same memory space
    
    console.log(sheeps === cloneSheeps);
    // false --> it's pointing to a new memory space
    
    _0

    Bagaimana cara menetapkan array ke objek dalam JavaScript?

    Cara Mengonversi Larik Menjadi Objek Menggunakan JavaScript .
    Objek. menetapkan() fungsi
    Ulangi array dan buat objek baru
    Fungsi pengurangan()

    Bagaimana Anda menetapkan array ke kunci objek?

    Untuk mengonversi larik menjadi objek, kita akan membuat fungsi dan memberinya 2 properti, larik, dan kunci. const convertArrayToObject = (array, key) => {}; Kami kemudian akan mengurangi larik, dan membuat properti unik untuk setiap item berdasarkan kunci .

    Bagaimana cara menetapkan nilai ke objek dalam JavaScript?

    Demo JavaScript. Obyek. tetapkan() .
    sumber const = { b. 4, c. 5 };
    const dikembalikanTarget = Obyek. menetapkan (target, sumber);
    menghibur. log(target); . Objek {a. 1, b. 4, c. 5 }
    menghibur. log(returnedTarget === target); . BENAR

    Bisakah Anda memiliki array di objek JavaScript?

    Objek Array memungkinkan Anda menyimpan banyak nilai dalam satu variabel . Ini menyimpan kumpulan elemen berurutan ukuran tetap dari jenis yang sama. Array digunakan untuk menyimpan kumpulan data, tetapi seringkali lebih berguna untuk memikirkan array sebagai kumpulan variabel dengan tipe yang sama.