জাভাস্ক্রিপ্টে দুটি সংখ্যা কীভাবে সংযুক্ত করবেন?


107

আমি পরিবর্তে 5 + 6ফিরে কিছু চাই ।"56"11


3
ঠিক আছে, আপনি অবশ্যই অনেক উত্তর পেয়েছেন। আমি সঠিক সবাইকে ভোট দিচ্ছি।
ডেভিড

উত্তরের বেশ কয়েকটিটির মাঝখানে ফাঁকা স্ট্রিং রয়েছে। অদ্ভুত বলে মনে হচ্ছে এবং আমি ভাবছিলাম যে এটি কেন কারও চেয়ে ভাল। প্রথম দিকে উদ্ধৃতিগুলি থাকা তাড়াতাড়ি উদ্দেশ্যগুলি নির্দেশ করে এবং আরও বেশি বোধগম্য বলে মনে হচ্ছে কারণ এটি দুটি সংখ্যার বেশি সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক কনটেন্টেট করার ক্ষেত্রে অতিরিক্ত চিন্তাভাবনা করার প্রয়োজন নেই। আমি মনে করি ভোটাররা একমত হয়েছেন, তবে মধ্যবর্তী যুক্তির পিছনে কোনও historicalতিহাসিক বা অন্য কোনও কারণ আছে কিনা তা ভেবেই ভাবছি।
মিঃবোজঙ্গলস

উত্তর:


152

"" + 5 + 6স্ট্রিং এ জোর করতে ব্যবহার করুন । এটি সংখ্যাগত ভেরিয়েবলগুলির সাথেও কাজ করে:

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


ঠিক আছে, 5 এবং 6 এর মানগুলি দুটি ভেরিয়েবলের মধ্যে রয়েছে: var1 = 5; বর্ণ 2 = 6; এটি কি এখনও কাজ করবে
হেইদি

3
এই উত্তরটি সম্পাদনা করা উচিত, অবশ্যই এটি একটি আরও ভাল পদ্ধতির। const numbersAsString = `${5}${6}`;
পাভোল ট্রাভনিক


26

আপনি এখন 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

কিছুটা বেশি ভার্বোস হলেও ব্যক্তিগতভাবে আমি নতুন সিনট্যাক্সটি আরও স্পষ্ট দেখতে পাচ্ছি।






11

আমি জানি এটি একটি পুরানো পোস্ট এবং বহুবার উত্তর দেওয়া হয়েছে। আমিও ভাবছিলাম যে জাভাস্ক্রিপ্টের কোনও ফাংশন রয়েছে যা এটি করবে। আমি কিছু গাণিতিক প্রোগ্রামিং করছিলাম এবং দুটি সংখ্যা একত্রিত করার প্রয়োজন ছিল।

সুতরাং আমি যদি দুটি সংখ্যার 17 এবং 29 সংশ্লেষের প্রয়োজন হয় তবে নিশ্চিত যে আমি তাদের স্ট্রিংগুলিতে পরিণত করতে এবং তাদের সাথে সংযুক্ত করতে পারি তবে নতুন স্ট্রিংটিকে একটি সংখ্যায় ফিরিয়ে আনতে পারি। এটি বেশ ভালভাবে কাজ করছে বলে মনে হচ্ছে এবং আমি আমার কোডটি দিয়ে যেতে পারি, তবে এখানে একবার দেখে নেওয়া যাক এবং এখানে কী ঘটছে তা নির্ধারণ করার চেষ্টা করি।

আমরা এই দুটি সংখ্যার কী করব, কীভাবে আমরা 17 এবং 29 কে নেব এবং এটিকে এক হাজার সাতশো উনিশটি করে দেব? আচ্ছা আমরা ১ 100০ কে ১০০ দিয়ে তারপরে ২৯ টি যোগ করতে পারি। আর কীভাবে একশ বাহাত্তর হাজার দুইশো তান্বিশটি? 172 কে 1000 দিয়ে গুণ করুন এবং 293 যোগ করুন। তবে কেবল 2 এবং 9 এর কী হবে? 10 দ্বারা 2 কে গুণ করুন তারপর 29 পেতে 9 যোগ করুন।

সুতরাং আশা করি এতক্ষণে একটি প্যাটার্ন আপনার কাছে স্পষ্ট হওয়া উচিত। কেবল স্ট্রিং ব্যবহার না করে আমাদের জন্য এই গণনাটি করার জন্য আমরা একটি গণিতের সূত্র তৈরি করতে পারি। যে কোনও দুটি সংখ্যার, a এবং b কে একত্রীকরণের জন্য আমাদের a এবং 10 এর গুণমানের দৈর্ঘ্যের পাওয়ার নিতে হবে তারপর b টি যোগ করুন।

তাহলে আমরা বি এর দৈর্ঘ্যটি কীভাবে পাব? ওয়েল, আমরা বি একটি স্ট্রিং মধ্যে পরিণত এবং এর দৈর্ঘ্য সম্পত্তি পেতে পারে।

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

তবে স্ট্রিং ছাড়াই এটি করার আরও ভাল উপায় থাকতে হবে, তাই না? হ্যা এখানে.

এখানে চিত্র বর্ণনা লিখুন

যে কোনও বি সংখ্যার জন্য ক এবং খ, যেকোন বেস বি সহ আমরা বেস বি দিয়ে দৈর্ঘ্যের শক্তিতে বহুগুণ করতে যাচ্ছি (খ এর লগ বেস ব্যবহার করে এর পরে ফ্লোরিং করে নিকটতম পুরো সংখ্যাটি পেতে এটিতে 1 যুক্ত করে) তারপরে খ।

সুতরাং এখন আমাদের কোডটি এর মতো দেখাচ্ছে:

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

তবে অপেক্ষা করুন, আমি বেস 2 বা বেস 8 এ এটি করতে চাইলে কী হবে? আমি এটা কিভাবে করবো? আমরা আমাদের সূত্রটি ব্যবহার করতে পারি না যা আমরা স্রেফ অন্য কোনও বেসের সাথে বেস 10 দিয়ে তৈরি করেছি জাভাস্ক্রিপ্ট ম্যাথ অবজেক্টটিতে ইতিমধ্যে বেস 10 এবং 2 (কেবল ম্যাথ.লগ) এর জন্য অন্তর্নির্মিত ফাংশন রয়েছে, তবে আমরা কীভাবে কোনওটির জন্য লগ ফাংশন পাব? অন্য বেস? আমরা বেস লগ দ্বারা খ লগ বিভক্ত।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 গণিত করতে যাচ্ছেন তবে আপনি বেসের জন্য একটি চেক যোগ করতে পারেন অনির্ধারিত তারপর বেস = 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.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



2
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


1

আমি এই মত সংখ্যায় ফিরে রূপান্তর ..

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;

}

ভোট ডাউন ছিল ধন্যবাদ আপনাকে :)

আমি এতে নতুন এবং আপনাদের কাছ থেকে কেন সুন্দর লাগবে তার একটি ব্যাখ্যা শিখতে এখানে এসেছি।

যাইহোক এই পোস্টটি এটি নির্ধারণ করতে আমাকে কীভাবে আমার সমস্যাটি স্থির করেছে তা দেখানোর জন্য যাইহোক আমার কোড আপডেট করেছে।


0

আমি 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('');

0

আপনি এই কৌশলটি ব্যবহার করে একটি নম্বর ফিরিয়ে দিতে পারেন :
প্রস্তাবিত নয়

[a] + b - 0

উদাহরণ:

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

0

উপরের সমস্ত উত্তর যুক্ত করতে আমি ব্যাকগ্রাউন্ড যুক্তিটি ভাগ করতে চাই:

প্লাস হ'ল একটি সংযোজন অপারেটর যা স্ট্রিংগুলির সংমিশ্রণের জন্যও ব্যবহৃত হয়। যখন আমরা সংখ্যার সাথে যুক্ত করতে চাই। এটি বোঝা উচিত যে আমরা স্ট্রিংগুলিকে একত্রীকরণ করতে চাই, কারণ সংখ্যার বক্তব্য আমার কাছে বৈধ ব্যবহারের মামলাগুলি তৈরি করে না।

আমরা একাধিক উপায়ে এটি অর্জন করতে পারি,

ধরণের রূপান্তর মাধ্যমে

let a = 5;
a.toString()+5 // Output 55 type "string"

এটি ব্যাকগ্রাউন্ডে রূপান্তর রূপেও কাজ করবে এবং করবে,

5 +""+ 5 // Output 55 type "string"

আপনি যদি দুটি স্ট্রিং এবং সংঘবদ্ধ আউটপুট ধরণের সংকল্পবদ্ধ করতে দৃ determined়প্রতিজ্ঞ হন তবে এখানে পার্সেন্ট () কাজ করে

parseInt(5 +""+ 5)  //Output 55 Type "number"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.