সত্য বা মিথ্যা একটি সুস্পষ্ট বুলিয়ান রূপান্তর করুন


101

আমার একটি পরিবর্তনশীল আছে এটি কল করুন toto

এটি totoসেট করা যেতে পারেundefined , nullএকটি স্ট্রিং, বা একটি বস্তু।

আমি totoকোনও ডেটাতে সেট করা আছে কিনা তা যাচাই করতে চাই , যার অর্থ একটি স্ট্রিং বা কোনও অবজেক্টে সেট করা আছে এবং তাও নয়undefined নাও null, এবং অন্য ভেরিয়েবলের ক্ষেত্রে বুলিয়ান মানটি সেট করে।

আমি সিনট্যাক্সের কথা ভেবেছিলাম, এটি !!দেখতে এরকম হবে:

var tata = !!toto; // tata would be set to true or false, whatever toto is.

প্রথম !সেট করা হবে falseযদি Toto হয় undefinedবা nullএবং trueঅন্য, এবং দ্বিতীয় এক এটি invert হবে।

তবে দেখতে কিছুটা অদ্ভুত লাগছে। সুতরাং এটি করার একটি পরিষ্কার উপায় আছে?

আমি ইতিমধ্যে এই প্রশ্নটি দেখেছি , তবে আমি একটি ভেরিয়েবলের মধ্যে একটি মান নির্ধারণ করতে চাই, এটি কেবল একটি ifবিবৃতিতে পরীক্ষা করে নয় ।


10
এই প্রশ্নটিকে সদৃশ হিসাবে চিহ্নিত করা হয়েছে তবে আপনি যদি অন্য প্রশ্নটির দিকে তাকান স্ট্যাকওভারফ্লো.com/ প্রশ্নস / ২6363৯65৫/২ এটি সম্পূর্ণ আলাদা; এগুলি একেবারেই নকল নয়
স্যাম

@ স্যাম দুঃখিত, তবে আমি নিজেকে এই সদৃশটি নিশ্চিত করেছিলাম, আমি এই অন্যান্য প্রশ্নের সম্পর্কে জানতাম না, তবে এটি আমার সমস্যার সমাধান করেছিল।
আরাকথর

11
@Aracthor এটা সদৃশ, কারণ নয় stackoverflow.com/questions/263965/... স্ট্রিং রূপান্তর "সত্য" এবং তাদের বুলিয়ান প্রতিরূপ থেকে "মিথ্যা" শুধুমাত্র শব্দ ধারণকারী সম্পর্কে। এই প্রশ্নটি সত্যই বা মিথ্যা কিনা তার ভিত্তিতে যে কোনও পরিবর্তনশীলকে বুলিয়ান রূপান্তর করা।
অ্যালান ম্যাকবি - এমএসএফটি

উত্তর:


159

হ্যাঁ, আপনি সর্বদা এটি ব্যবহার করতে পারেন:

var tata = Boolean(toto);

এবং এখানে কয়েকটি পরীক্ষা রয়েছে:

for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) {
    console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`);
}

ফলাফল:

Boolean(number 0) is false
Boolean(number 1) is true
Boolean(number -1) is true
Boolean(string 0) is true
Boolean(string 1) is true
Boolean(string cat) is true
Boolean(boolean true) is true
Boolean(boolean false) is false
Boolean(undefined undefined) is false
Boolean(object null) is false

75
লক্ষণীয়, বুলিয়ান ("মিথ্যা") সত্য, যখন আপনি সম্ভবত এটি মিথ্যা হতে চান।
স্টার্লিং বোর্ন

45
পৃথিবীতে কেন আপনি "মিথ্যা" স্ট্রিংকে মিথ্যা বলে মনে করতে চান? এমনকি পিএইচপি এমনকি এটি করে না: ডি
ড্যানন

4
তার মানে Boolean("false")
রোবো রোবক

4
@ নোহা ডেভিড এটি সত্য ফিরে আসে। শুধুমাত্র কাস্ট করা স্ট্রিংটি falseএকটি খালি স্ট্রিং ( "")।
রোবো রোবোক

6
হুবহু যে কারণে "মিথ্যা" শব্দটি যদি উক্তিতে থাকে এবং এভাবে স্ট্রিং হিসাবে ব্যাখ্যা করা হয় তবে আপনাকে সতর্কতা অবলম্বন করতে হবে। আপনি ভাবতে পারেন যে আপনি এটি মিথ্যা হিসাবে কাস্ট করছেন তবে বাস্তবে এটি সত্য হয়ে যাবে - সুতরাং আসল সতর্কতা।
স্টার্লিং বোর্ন

2

আপনি রূপান্তর করতে Boolean(obj)বা ব্যবহার করতে পারেন ।!!objtruthy/falsytrue/false

var obj = {a: 1}
var to_bool_way1 = Boolean(obj) // true
var to_bool_way2 = !!obj // true
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.