Мне бы хотелось, чтобы 5 + 6
возвращал "56"
вместо 11
.
Как конкатенировать два числа в javascript?
Ответ 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;
Но должен быть лучший способ сделать это без строк, верно? Да, есть.
Для любых двух чисел, 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