কিভাবে একটি বুলিয়ান টগল?


412

জাভাস্ক্রিপ্টে একটি বুলিয়ান মান টগল করার সত্যিই সহজ উপায় আছে ?

এখনও অবধি, একটি কাস্টম ফাংশন লেখার বাইরে আমি যে সেরাটি পেয়েছি তা হ'ল তিনটি:

bool = bool ? false : true;

উত্তর:


926
bool = !bool;

এটি বেশিরভাগ ভাষায় সত্য।


8
সত্যিই দুর্দান্ত সমাধান, আমি ব্যবহার করছিলাম: পরীক্ষা = (পরীক্ষা == সত্য)? সত্য মিথ্যা;
আল্পেরা

1
এটি সূচনা প্রয়োজন, সুতরাং সূচনা ছাড়াই উপায় আছে। যদিও এটি অবজেক্ট বৈশিষ্ট্যগুলিতে কাজ করবে।
ব্যবহারকারী 2846569

10
@ ইউজার ২৪৪65696969, আপনি যদি বুলিয়ান টগল করছেন তবে এর অর্থ হ'ল প্রকৃতির দ্বারা ভেরিয়েবলটি ইতিমধ্যে ইনিশিয়াল করা হয়েছে। bool = !bool || true;আমি মনে করি আপনি এটি ডিফল্ট হিসাবে প্রসারিত করতে পারেন।
জর্ডান

3
@ জর্ডান এটি রেফারেন্স এরির সৃষ্টি করে
ব্যবহারকারী ২৪৪656969৯

1
জেবি বাইনারি স্টেটমেন্টের চেয়ে অবিচ্ছিন্ন বিবৃতি চায়। সম্ভবত এটি বুল হতে পারে !! বা !! তবে এখনও অবধি আমি এ জাতীয় সিনট্যাক্সটি কখনও দেখিনি। আমি জর্ডানের সাথে একমত এটি ইতিমধ্যে খুব ছোট।
ফান্দি সুসান্টো

95

আপনি যদি বুলেয়ানকে কোনও সংখ্যায় রূপান্তরিত করতে আপত্তি না করেন (এটি হয় 0 বা 1) তবে আপনি বিটওয়াইস এক্সওআর এসাইনমেন্ট অপারেটরটি ব্যবহার করতে পারেন । তাই ভালো:

bool ^= true;   //- toggle value.


আপনি দীর্ঘ, বর্ণনামূলক বুলিয়ান নামগুলি, EG ব্যবহার করলে এটি বিশেষত ভাল:

var inDynamicEditMode   = true;     // Value is: true (boolean)
inDynamicEditMode      ^= true;     // Value is: 0 (number)
inDynamicEditMode      ^= true;     // Value is: 1 (number)
inDynamicEditMode      ^= true;     // Value is: 0 (number)

প্রতিটি লাইনে পরিবর্তনশীল পুনরাবৃত্তি করার চেয়ে স্ক্যান করা আমার পক্ষে সহজ।

এই পদ্ধতিটি সমস্ত (প্রধান) ব্রাউজারগুলিতে (এবং বেশিরভাগ প্রোগ্রামিং ভাষাতে) কাজ করে।


15
যেহেতু এটি কোনও পূর্ণসংখ্যার সাথে আবৃত্তি করে, তাই এটি সরল করা যেতে পারে:bool ^= 1
কাইল মোলার

47
হিসাবে মান একটি নম্বরে casted হয়, আপনি না করতে সক্ষম হবে bool === falseঅথবা bool === trueআর। এটি বিদ্যমান কোডটি ভঙ্গ করতে পারে, তাই সাবধান হন।
aymericbeaumet


8

আসুন এটি কার্যকরভাবে দেখুন:

var b = true;

console.log(b); // true

b = !b;
console.log(b); // false

b = !b;
console.log(b); // true

যাইহোক, আপনার বর্তমানে যা আছে তার চেয়ে ছোট কোনও উপায় নেই।


2
bool === tool ? bool : tool

যদি আপনি মানটি ধরে রাখতে চান তবে tool(অন্য বুলিয়ান) একই মান রয়েছে


2

আমি একটি টগলিং পদ্ধতির পরে অনুসন্ধান করছিলাম যা একই কাজ করে, এর মূল মূল্য nullবা undefinedযেখানে হওয়া উচিত তা বাদ দিয়ে false

এটা এখানে:

booly = !(booly != false)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.