Chciałbym, 5 + 6żeby "56"zamiast tego coś chciałem wrócić 11.
Chciałbym, 5 + 6żeby "56"zamiast tego coś chciałem wrócić 11.
Odpowiedzi:
Użyj, "" + 5 + 6aby zmusić go do strun. Działa to również ze zmiennymi numerycznymi:
var a = 5;
var b = 6;
console.log("" + a + b);
const numbersAsString = `${5}${6}`;
var value = "" + 5 + 6;
alert(value);
Możesz teraz korzystać z literałów szablonów ES6 .
const numbersAsString = `${5}${6}`;
console.log(numbersAsString); // Outputs 56
Lub, jeśli masz zmienne:
const someNumber = 5;
const someOtherNumber = 6;
const numbersAsString = `${someNumber}${someOtherNumber}`;
console.log(numbersAsString); // Outputs 56
Osobiście uważam, że nowa składnia jest znacznie jaśniejsza, choć nieco bardziej szczegółowa.
po prostu użyj:
5 + "" + 6
prosta odpowiedź:
5 + '' + 6;
Posługiwać się
var value = "" + 5 + 6;
zmusić go do strun.
Wiem, że to stary post, na który odpowiedziano wiele razy. Ja też się zastanawiałem, czy JavaScript ma funkcję, która by to zrobiła. Zajmowałem się programowaniem matematycznym i musiałem połączyć dwie liczby.
A co by było, gdybym musiał połączyć dwie liczby 17 i 29. Jasne, że mogę zamienić je w łańcuchy i połączyć je, a następnie zamienić nowy ciąg z powrotem w liczbę. Wygląda na to, że działa całkiem nieźle i mogę kontynuować kod, ale spójrzmy tutaj i spróbujmy dowiedzieć się, co tak naprawdę się tutaj dzieje.
Co robimy z tymi dwoma liczbami, jak weźmiemy 17 i 29 i zamienimy je na tysiąc siedemset dwadzieścia dziewięć? Cóż, możemy pomnożyć 17 przez 100, a następnie dodać 29. A co z 172 i 293, aby otrzymać sto siedemdziesiąt dwa tysiące dwieście dziewięćdziesiąt trzy? Pomnóż 172 przez 1000 i dodaj 293. Ale co z tylko 2 i 9? Pomnóż 2 przez 10, a następnie dodaj 9, aby otrzymać 29.
Miejmy więc nadzieję, że do tej pory wzór powinien być dla ciebie widoczny. Możemy opracować formułę matematyczną, aby wykonać to obliczenie za nas, a nie tylko przy użyciu ciągów znaków. Aby połączyć dowolne dwie liczby, a i b, musimy dodać iloczyn a i 10 do potęgi długości b, a następnie dodać b.
Jak więc obliczyć długość liczby b? Cóż, moglibyśmy zamienić b w ciąg i uzyskać jego właściwość length.
a * Math.pow(10, new String(b).length) + b;
Ale musi być lepszy sposób na zrobienie tego bez strun, prawda? Tak jest.
Dla dowolnych dwóch liczb, a i b, z dowolną podstawą B.Mnożymy a przez podstawę B do potęgi długości b (używając logarytmu o podstawie b, a następnie układając go w podłogę, aby uzyskać najbliższą liczbę całkowitą, a następnie dodać 1 do niej) następnie dodanie b.
Więc teraz nasz kod wygląda następująco:
a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;
Ale czekaj, a co jeśli chciałbym to zrobić na podstawie 2 lub podstawy 8? Jak mogę to zrobić? Nie możemy użyć naszej formuły, którą właśnie utworzyliśmy, z inną bazą niż podstawową 10. Obiekt JavaScript Math ma już wbudowane funkcje dla podstawy 10 i 2 (tylko Math.log), ale jak możemy uzyskać funkcje dziennika dla dowolnego inna baza? Dzielimy logarytm b przez logarytm podstawy.Math.log(b) / Math.log(base).
Więc teraz mamy nasz w pełni działający kod matematyczny do łączenia dwóch liczb:
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
Jeśli wiesz, że będziesz wykonywać obliczenia matematyczne tylko przy podstawie 10, możesz dodać sprawdzenie, czy podstawa jest niezdefiniowana, a następnie ustawić podstawę = 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
Aby mi to ułatwić, użyłem prototypu, aby dodać funkcję do obiektu 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
Możesz także użyć toStringfunkcji, aby przekonwertować ją na łańcuch i połączyć.
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
To jest łatwy sposób na zrobienie tego
var value=5+""+6;
Przekonwertowałem z powrotem na taką liczbę ...
const timeNow = '' + 12 + 45;
const openTime = parseInt(timeNow, 10);
wyjście 1245
-- edytować --
Przepraszam,
dla mojego użytku to nadal nie działa dla mnie po testach. Musiałem dodać brakujące zero z powrotem, ponieważ było usuwane na liczbach mniejszych niż 10, używam go do uruchamiania kodu w określonych momentach Może nie być poprawne, ale wydaje się działać (do tej pory).
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;
}
Głosowanie nie było miłe, dziękuję :)
Jestem w tym nowy i przyjechałem tutaj, aby nauczyć się od was wyjaśnienia, dlaczego byłoby miło.
W każdym razie zaktualizowałem mój kod, aby pokazać, jak naprawiłem mój problem, ponieważ ten post pomógł mi go rozgryźć.
Aby dodać do wszystkich powyższych odpowiedzi, chcę udostępnić logikę tła:
Plus to operator dodawania, który jest również używany do łączenia ciągów. Kiedy chcemy połączyć liczby. Powinno być zrozumienie, że chcemy konkatenować łańcuchy, ponieważ konkatenacja liczb nie daje mi poprawnych przypadków użycia.
Możemy to osiągnąć na wiele sposobów,
Poprzez konwersję typów
let a = 5;
a.toString()+5 // Output 55 type "string"
To również zadziała i przeprowadzi konwersję typów w tle,
5 +""+ 5 // Output 55 type "string"
Jeśli jesteś zdecydowany połączyć dwa łańcuchy i typ wyjścia powinien być int, parseInt () działa tutaj
parseInt(5 +""+ 5) //Output 55 Type "number"