J'aimerais quelque chose comme 5 + 6revenir "56"au lieu de 11.
J'aimerais quelque chose comme 5 + 6revenir "56"au lieu de 11.
Réponses:
Utilisez "" + 5 + 6pour le forcer aux chaînes. Cela fonctionne également avec des variables numériques:
var a = 5;
var b = 6;
console.log("" + a + b);
const numbersAsString = `${5}${6}`;
var value = "" + 5 + 6;
alert(value);
Vous pouvez maintenant utiliser les littéraux de modèle ES6 .
const numbersAsString = `${5}${6}`;
console.log(numbersAsString); // Outputs 56
Ou, si vous avez des variables:
const someNumber = 5;
const someOtherNumber = 6;
const numbersAsString = `${someNumber}${someOtherNumber}`;
console.log(numbersAsString); // Outputs 56
Personnellement, je trouve la nouvelle syntaxe beaucoup plus claire, quoique légèrement plus verbeuse.
utilisez simplement:
5 + "" + 6
réponse simple:
5 + '' + 6;
Utilisation
var value = "" + 5 + 6;
pour le forcer à des chaînes.
Je sais que c'est un ancien message et il a reçu de nombreuses réponses. Je me demandais moi aussi si JavaScript avait une fonction qui ferait cela. Je faisais de la programmation mathématique et j'avais besoin de concaténer deux nombres.
Alors que faire si j'avais besoin de combiner deux nombres 17 et 29. Bien sûr, je peux les transformer en chaînes et les concaténer, puis transformer la nouvelle chaîne en un nombre. Cela semble fonctionner plutôt bien et je peux continuer avec mon code, mais jetons un coup d'œil ici et essayons de comprendre ce qui se passe vraiment ici.
Que faisons-nous de ces deux nombres, comment pouvons-nous prendre 17 et 29 et le transformer en mille sept cent vingt-neuf? Eh bien, nous pouvons multiplier 17 par 100 puis ajouter 29. Et que diriez-vous de 172 et 293 pour obtenir cent soixante-douze mille deux cent quatre-vingt-treize? Multipliez 172 par 1000 et ajoutez 293. Mais qu'en est-il seulement de 2 et 9? Multipliez 2 par 10 puis ajoutez 9 pour obtenir 29.
J'espère donc qu'à présent, un modèle devrait vous apparaître. Nous pouvons concevoir une formule mathématique pour faire ce calcul à notre place plutôt que d'utiliser simplement des chaînes. Pour concaténer deux nombres quelconques, a et b, nous devons prendre le produit de a et 10 à la puissance de la longueur b puis ajouter b.
Alors, comment obtenir la longueur du nombre b? Eh bien, nous pourrions transformer b en une chaîne et en obtenir la propriété length.
a * Math.pow(10, new String(b).length) + b;
Mais il doit y avoir une meilleure façon de faire cela sans cordes, non? Oui il y a.
Pour deux nombres quelconques, a et b, avec n'importe quelle base B.Nous allons multiplier a par la base B à la puissance de la longueur b (en utilisant la base logarithmique de b puis en la recouvrant pour obtenir le nombre entier le plus proche, puis en y ajoutant 1) puis en ajoutant b.
Alors maintenant, notre code ressemble à ceci:
a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;
Mais attendez, et si je voulais faire cela en base 2 ou en base 8? Comment puis je faire ça? Nous ne pouvons pas utiliser notre formule que nous venons de créer avec une autre base que la base 10. L'objet JavaScript Math a déjà des fonctions intégrées pour la base 10 et 2 (juste Math.log), mais comment obtenir des fonctions de journal pour tout autre base? Nous divisons le log de b par le log de base.Math.log(b) / Math.log(base).
Nous avons donc maintenant notre code basé sur les mathématiques entièrement fonctionnel pour concaténer deux nombres:
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
Si vous saviez que vous n'alliez faire que des calculs de base 10, vous pouvez ajouter une vérification pour que la base n'est pas définie, puis définir 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
Pour me faciliter la tâche, j'ai utilisé le prototype pour ajouter la fonction à l'objet 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
Vous pouvez également utiliser la toStringfonction pour le convertir en chaîne et concaténer.
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
C'est le moyen le plus simple de le faire
var value=5+""+6;
Je me suis reconverti en nombre comme ça.
const timeNow = '' + 12 + 45;
const openTime = parseInt(timeNow, 10);
sortie 1245
-- Éditer --
Désolé,
pour mon utilisation, cela ne fonctionnait toujours pas pour moi après les tests. J'ai dû rajouter le zéro manquant car il était supprimé sur les nombres inférieurs à 10, mon utilisation est de laisser le code s'exécuter à certains moments Peut ne pas être correct, mais cela semble fonctionner (jusqu'à présent).
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;
}
Le vote était gentil merci :)
Je suis nouveau dans ce domaine et je viens ici pour apprendre de vous les gars une explication de pourquoi cela aurait été gentil.
Quoi qu'il en soit, j'ai mis à jour mon code pour montrer comment j'ai résolu mon problème, car ce message m'a aidé à le résoudre.
Je préfère le concatchemin:
const numVar1 = 5;
const numVar2 = 6;
const value = "".concat(numVar1, numVar2);
// or directly with values
const value2 = "".concat(5, 6);
Vous pouvez également utiliser un tableau qui peut vous aider dans certains cas d'utilisation:
const value3 = [5, 6, numVar1].join('');
Pour ajouter à toutes les réponses ci-dessus, je veux partager la logique d'arrière-plan:
Plus est un opérateur d'addition qui est également utilisé pour la concaténation de chaînes. Lorsque nous voulons concaténer des nombres. Il devrait être entendu que nous voulons concaténer les chaînes, car la concaténation de nombres ne me permet pas de cas d'utilisation valides.
Nous pouvons y parvenir de plusieurs manières,
Par conversion de type
let a = 5;
a.toString()+5 // Output 55 type "string"
Cela fonctionnera également et effectuera la conversion de type en arrière-plan,
5 +""+ 5 // Output 55 type "string"
Si vous êtes déterminé à concaténer deux chaînes et que le type de sortie doit être int, parseInt () fonctionne ici
parseInt(5 +""+ 5) //Output 55 Type "number"