Saya ingin sesuatu yang ingin saya 5 + 6kembalikan, "56"bukan 11.
Saya ingin sesuatu yang ingin saya 5 + 6kembalikan, "56"bukan 11.
Jawaban:
Gunakan "" + 5 + 6untuk memaksanya menjadi string. Ini bekerja dengan variabel numerik juga:
var a = 5;
var b = 6;
console.log("" + a + b);
const numbersAsString = `${5}${6}`;
var value = "" + 5 + 6;
alert(value);
Anda sekarang dapat menggunakan literal template ES6 .
const numbersAsString = `${5}${6}`;
console.log(numbersAsString); // Outputs 56
Atau, jika Anda memiliki variabel:
const someNumber = 5;
const someOtherNumber = 6;
const numbersAsString = `${someNumber}${someOtherNumber}`;
console.log(numbersAsString); // Outputs 56
Secara pribadi saya menemukan sintaks baru jauh lebih jelas, meskipun sedikit lebih bertele-tele.
gunakan saja:
5 + "" + 6
jawaban sederhana:
5 + '' + 6;
Menggunakan
var value = "" + 5 + 6;
untuk memaksanya menjadi string.
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.
a * Math.pow(10, new String(b).length) + b;
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:
a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;
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:
function concatenate(a, b, base) {
return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
}
var a = 17, var b = 29;
var concatenatedNumber = concatenate(a, b, 10);
// concatenatedNumber = 1729
Jika Anda tahu bahwa Anda hanya akan mengerjakan matematika basis 10, Anda dapat menambahkan tanda centang untuk basis tidak terdefinisi lalu set basis = 10:
function concatenate(a, b, base) {
if(typeof base == 'undefined') {
base = 10;
}
return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
}
var a = 17, b = 29;
var newNumber = concatenate(a, b); // notice I did not use the base argument
// newNumber = 1729
Untuk mempermudah saya, saya menggunakan prototipe untuk menambahkan fungsi ke objek Number:
Number.prototype.concatenate = function(b, base) {
if(typeof base == 'undefined') {
base = 10;
}
return this * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
};
var a = 17;
var newNumber = a.concatenate(29);
// newNumber = 1729
Anda juga dapat menggunakan toStringfungsi untuk mengubahnya menjadi string dan menggabungkan.
var a = 5;
var b = 6;
var value = a.toString() + b.toString();
enter code here
var a = 9821099923;
var b = 91;
alert ("" + b + a);
// after concating , result is 919821099923 but its is now converted
into string
console.log(Number.isInteger("" + b + a)) // false
you have to do something like below:-
var c= parseInt("" + b + a)
console.log(c); // 919821099923
console.log(Number.isInteger(c)) // true
Ini adalah cara mudah untuk melakukan ini
var value=5+""+6;
Saya mengonversi kembali ke angka seperti ini ..
const timeNow = '' + 12 + 45;
const openTime = parseInt(timeNow, 10);
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).
h = new Date().getHours();
m = new Date().getMinutes();
isOpen: boolean;
timeNow = (this.m < 10) ? '' + this.h + 0 + this.m : '' + this.h + this.m;
openTime = parseInt(this.timeNow);
closed() {
(this.openTime >= 1450 && this.openTime <= 1830) ? this.isOpen = true :
this.isOpen = false;
(this.openTime >= 715 && this.openTime <= 915) ? this.isOpen = true :
this.isOpen = false;
}
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.
Saya lebih suka concatcara:
const numVar1 = 5;
const numVar2 = 6;
const value = "".concat(numVar1, numVar2);
// or directly with values
const value2 = "".concat(5, 6);
Anda juga dapat menggunakan larik yang dapat membantu dalam beberapa kasus penggunaan:
const value3 = [5, 6, numVar1].join('');
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
let a = 5;
a.toString()+5 // Output 55 type "string"
Ini juga akan bekerja dan melakukan konversi tipe di latar belakang,
5 +""+ 5 // Output 55 type "string"
Jika Anda memutuskan untuk menggabungkan dua string dan jenis keluaran harus int, parseInt () bekerja di sini
parseInt(5 +""+ 5) //Output 55 Type "number"