Saya ingin sesuatu yang ingin saya 5 + 6
kembalikan, "56"
bukan 11
.
javascript
Heidi
sumber
sumber
Jawaban:
Gunakan
"" + 5 + 6
untuk memaksanya menjadi string. Ini bekerja dengan variabel numerik juga:sumber
const numbersAsString = `${5}${6}`;
sumber
Anda sekarang dapat menggunakan literal template ES6 .
Atau, jika Anda memiliki variabel:
Secara pribadi saya menemukan sintaks baru jauh lebih jelas, meskipun sedikit lebih bertele-tele.
sumber
gunakan saja:
sumber
jawaban sederhana:
sumber
sumber
Menggunakan
untuk memaksanya menjadi string.
sumber
Saya tahu ini adalah posting lama dan telah dijawab berkali-kali. Saya juga bertanya-tanya apakah JavaScript memiliki fungsi yang akan melakukan ini. Saya melakukan beberapa pemrograman matematika dan perlu menggabungkan dua angka.
Jadi bagaimana jika saya perlu menggabungkan dua angka 17 dan 29. Tentu saya bisa mengubahnya menjadi string dan menggabungkannya kemudian mengubah string baru kembali menjadi angka. Itu tampaknya bekerja dengan cukup baik dan saya dapat melanjutkan dengan kode saya, tetapi mari kita lihat di sini dan mencoba mencari tahu apa yang sebenarnya terjadi di sini.
Apa yang kita lakukan pada dua angka ini, bagaimana kita mengambil 17 dan 29 dan mengubahnya menjadi seribu tujuh ratus dua puluh sembilan? Nah kita bisa mengalikan 17 dengan 100 lalu menjumlahkan 29. Dan bagaimana dengan 172 dan 293 untuk mendapatkan seratus tujuh puluh dua ribu dua ratus sembilan puluh tiga? Kalikan 172 dengan 1000 dan tambahkan 293. Tapi bagaimana dengan hanya 2 dan 9? Kalikan 2 dengan 10 lalu tambahkan 9 untuk mendapatkan 29.
Jadi semoga sekarang sebuah pola sudah terlihat oleh Anda. Kita dapat membuat rumus matematika untuk melakukan perhitungan ini untuk kita daripada hanya menggunakan string. Untuk menggabungkan dua angka apa pun, a dan b, kita perlu mengambil hasil kali a dan 10 pangkat panjang b lalu menambahkan b.
Jadi bagaimana kita mendapatkan panjang bilangan? Nah, kita bisa mengubah b menjadi string dan mendapatkan properti panjangnya.
Tapi pasti ada cara yang lebih baik untuk melakukan ini tanpa pamrih, bukan? Ya ada.
Untuk dua bilangan apa pun, a dan b, dengan basis B.Kita akan mengalikan a dengan basis B dengan pangkat panjang b (menggunakan basis log b lalu melapisinya untuk mendapatkan bilangan bulat terdekat lalu menambahkan 1 ke dalamnya) lalu tambahkan b.
Jadi sekarang kode kita terlihat seperti ini:
Tapi tunggu, bagaimana jika saya ingin melakukan ini di basis 2 atau basis 8? Bagaimana saya bisa melakukan itu? Kita tidak dapat menggunakan rumus kita yang baru saja kita buat dengan basis lain selain basis 10. Objek Matematika JavaScript sudah memiliki fungsi bawaan untuk basis 10 dan 2 (hanya Math.log), tetapi bagaimana kita mendapatkan fungsi log untuk pangkalan lain? Kami membagi log dari b dengan log basis.
Math.log(b) / Math.log(base).
Jadi sekarang kita memiliki kode berbasis matematika yang berfungsi penuh untuk menggabungkan dua angka:
Jika Anda tahu bahwa Anda hanya akan mengerjakan matematika basis 10, Anda dapat menambahkan tanda centang untuk basis tidak terdefinisi lalu set basis = 10:
Untuk mempermudah saya, saya menggunakan prototipe untuk menambahkan fungsi ke objek Number:
sumber
Anda juga dapat menggunakan
toString
fungsi untuk mengubahnya menjadi string dan menggabungkan.sumber
Kemungkinan lain bisa jadi ini:
sumber
sumber
Ini adalah cara mudah untuk melakukan ini
sumber
Saya mengonversi kembali ke angka seperti ini ..
keluaran 1245
- edit -
Maaf,
untuk saya gunakan ini masih tidak berhasil untuk saya setelah pengujian. Saya harus menambahkan kembali nol yang hilang saat itu dihapus pada angka yang lebih kecil dari 10, penggunaan saya adalah untuk membiarkan kode berjalan pada waktu tertentu Mungkin tidak benar tetapi tampaknya berfungsi (sejauh ini).
}
Suara turun bagus terima kasih :)
Saya baru dalam hal ini dan datang ke sini untuk belajar dari kalian penjelasan tentang mengapa lebih baik.
Anyways memperbarui kode saya untuk menunjukkan bagaimana saya memperbaiki masalah saya karena posting ini membantu saya mengetahuinya.
sumber
Saya lebih suka
concat
cara:Anda juga dapat menggunakan larik yang dapat membantu dalam beberapa kasus penggunaan:
sumber
Anda dapat mengembalikan angka dengan menggunakan trik ini:
tidak disarankan
Contoh:
sumber
Untuk menambah semua jawaban di atas saya ingin berbagi logika latar belakang:
Plus adalah operator tambahan yang juga digunakan untuk penggabungan string. Saat kita ingin menggabungkan angka. Ini harus menjadi pemahaman bahwa kami ingin menggabungkan string, karena penggabungan angka tidak membuat kasus penggunaan yang valid bagi saya.
Kami dapat mencapainya dengan berbagai cara,
Melalui konversi tipe
Ini juga akan bekerja dan melakukan konversi tipe di latar belakang,
Jika Anda memutuskan untuk menggabungkan dua string dan jenis keluaran harus int, parseInt () bekerja di sini
sumber