Подтвердить что ты не робот

Как конкатенировать два числа в javascript?

Мне бы хотелось, чтобы 5 + 6 возвращал "56" вместо 11.

4b9b3361

Ответ 1

Используйте "" + 5 + 6, чтобы принудительно привязать его к строкам. Это также работает с числовыми переменными:

var a = 5;
var b = 6;
console.log("" + a + b);

Ответ 2

var value = "" + 5 + 6;
alert(value);

Ответ 3

просто используйте:

5 + "" + 6

Ответ 4

Теперь вы можете использовать шаблонные шаблоны ES6.

const numbersAsString = '${5}${6}';
console.log(numbersAsString); // Outputs 56

Или, если у вас есть переменные:

const someNumber = 5;
const someOtherNumber = 6;
const numbersAsString = '${someNumber}${someOtherNumber}';

console.log(numbersAsString); // Outputs 56

Лично я нахожу новый синтаксис намного более ясным, хотя и немного более многословным.

Ответ 5

простой ответ:

5 + '' + 6;

Ответ 6

var output = 5 + '' + 6;

Ответ 7

Используйте

var value = "" + 5 + 6;

чтобы заставить его использовать строки.

Ответ 8

Вы также можете использовать функцию toString, чтобы преобразовать ее в строку и объединить.

var a = 5;
var b = 6;
var value = a.toString() + b.toString();

Ответ 9

Я знаю, что это старый пост, и мне ответили много раз. Мне тоже было интересно, есть ли в JavaScript функция, которая бы это делала. Я занимался математическим программированием и мне нужно было объединить два числа.

Так что, если мне нужно объединить два числа 17 и 29. Конечно, я могу превратить их в строки и объединить их, а затем превратить новую строку обратно в число. Кажется, это работает очень хорошо, и я могу продолжить с моим кодом, но давайте посмотрим здесь и попытаемся выяснить, что на самом деле здесь происходит.

Что мы делаем с этими двумя числами, как мы берем 17 и 29 и превращаем их в тысячу семьсот двадцать девять? Ну, мы можем умножить 17 на 100, а затем добавить 29. А как насчет 172 и 293, чтобы получить сто семьдесят две тысячи двести девяносто три? Умножьте 172 на 1000 и добавьте 293. Но как насчет только 2 и 9? Умножьте 2 на 10, затем добавьте 9, чтобы получить 29.

Так что, надеюсь, к настоящему времени картина должна быть очевидна для вас. Мы можем разработать математическую формулу, чтобы сделать это вычисление для нас, а не просто использовать строки. Чтобы объединить любые два числа a и b, нам нужно взять произведение a и 10 на степень длины b, а затем добавить b.

Итак, как мы можем получить длину числа б? Ну, мы могли бы превратить b в строку и получить ее свойство length.

    a * Math.pow(10, new String(b).length) + b;

Но должен быть лучший способ сделать это без строк, верно? Да, есть.

enter image description here

Для любых двух чисел, a и b, с любой базой B. Мы умножим a на базу B до степени длины b (используя логарифмическую базу b, затем вычеркнув ее, чтобы получить ближайшее целое число, затем добавив к нему 1) затем добавив б.

Теперь наш код выглядит следующим образом:

    a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;

Но подожди, а что если я захочу сделать это на базе 2 или 8? Как я могу это сделать? Мы не можем использовать нашу формулу, которую мы только что создали, с любой другой базой, кроме базы 10. Объект JavaScript Math уже имеет встроенные функции для баз 10 и 2 (только Math.log), но как мы можем получить функции журнала для любого другая база? Делим лог b на лог базы. Math.log(b) / Math.log(base).

Итак, теперь у нас есть наш полностью функциональный математический код для объединения двух чисел:

    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

Если вы знали, что собираетесь выполнять математику только по основанию 10, вы можете добавить проверку на неопределенность базы, а затем установить base = 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

Чтобы мне было проще, я использовал прототип для добавления функции к объекту 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

Ответ 10

Другая возможность может быть такой:

var concat = String(5) + String(6);

Ответ 11

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

Ответ 12

Это простой способ сделать это

var value=5+""+6;

Ответ 13

Я преобразовал обратно в число, как это..

const timeNow = '' + 12 + 45;
const openTime = parseInt(timeNow, 10);

вывод 1245

- изменить -

извините,

для моего использования это все еще не работало для меня после тестирования. Мне пришлось добавить отсутствующий ноль обратно, так как он удалялся на числах меньше 10, я использую для запуска кода в определенное время Может быть не правильно, но, похоже, работает (пока).

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;

}

Голосование было приятно, спасибо :)

Я новичок в этом и прихожу сюда, чтобы узнать у вас, ребята, объяснение того, почему было бы хорошо.

Anyways обновил мой код, чтобы показать, как я исправил свою проблему, поскольку этот пост помог мне разобраться.

Ответ 14

Я бы предпочел concat способ:

const numVar1 = 5;
const numVar2 = 6;
const value = "".concat(numVar1, numVar2);
// or directly with values
const value2 = "".concat(5, 6);

Вы также можете использовать массив, который может помочь в некоторых случаях:

const value3 = [5, 6, numVar1].join('');

Ответ 15

Вы можете вернуть число, используя этот трюк:
не рекомендуется

[a] + b - 0

Пример:

let output = [5] + 6 - 0;
console.log(output); // 56
console.log(typeof output); // number