কোডটি পঠনযোগ্য হওয়া উচিত, সুতরাং সংক্ষিপ্ত হওয়ার অর্থটি যে পরিমাণই ব্যয় করা উচিত নয় - এর জন্য আপনার https://codegolf.stackexchange.com/ এ পুনরায় পোস্ট করা উচিত - সুতরাং পরিবর্তে আমি index
পঠন বোধগম্যতা সর্বাধিককরণের জন্য নামের একটি দ্বিতীয় স্থানীয় ভেরিয়েবল ব্যবহার করার সুপারিশ করব ( ন্যূনতম রানটাইম ব্যয় সহ, আমি দ্রষ্টব্য):
var index = someArray.indexOf( 3 );
var value = index == -1 ? 0 : index;
তবে আপনি যদি সত্যিই এই ভাবটি কমিয়ে দিতে চান, কারণ আপনি যদি আপনার সহকর্মী বা প্রকল্পের সহযোগীদের প্রতি নিষ্ঠুর অনুরাগী হন, তবে আপনি ব্যবহার করতে পারেন এমন 4 টি পদ্ধতি এখানে:
1: একটি var
বিবৃতিতে অস্থায়ী পরিবর্তনশীল
কমা দিয়ে আলাদা হয়ে যাওয়ার সময় আপনি var
দ্বিতীয় অস্থায়ী পরিবর্তনশীল সংজ্ঞা দিতে (এবং নির্ধারিত) বক্তব্যটির ক্ষমতা ব্যবহার করতে পারেন index
:
var index = someArray.indexOf(3), value = index !== -1 ? index: 0;
2: স্ব-নির্বাহী বেনাম ফাংশন
আরেকটি বিকল্প হ'ল একটি স্ব-কার্যকরকারী বেনামে ফাংশন:
// Traditional syntax:
var value = function( x ) { return x !== -1 ? x : 0 }( someArray.indexOf(3) );
// ES6 syntax:
var value = ( x => x !== -1 ? x : 0 )( someArray.indexOf(3) );
3: কমা অপারেটর
এছাড়াও জাভা স্ক্রিপ্ট সমর্থন করে এমন কুখ্যাত "কমা অপারেটর", যা সি এবং সি ++ তে উপস্থিত রয়েছে।
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator
আপনি যখন কোনও একক অভিব্যক্তি প্রয়োজন এমন একাধিক অভিব্যক্তি অন্তর্ভুক্ত করতে চান তখন আপনি কমা অপারেটরটি ব্যবহার করতে পারেন।
আপনি এটিকে পুনরায় সাইন ইন করে এই ক্ষেত্রে, পার্শ্ব-প্রতিক্রিয়াগুলি প্রবর্তন করতে এটি ব্যবহার করতে পারেন value
:
var value = ( value = someArray.indexOf(3), value !== -1 ? value : 0 );
এটি কাজ করে কারণ var value
প্রথমে ব্যাখ্যা করা হয়েছে (এটি একটি বিবৃতি হিসাবে), এবং তারপরে বাম-সর্বাধিক, অভ্যন্তরীণ সর্বাধিক value
অ্যাসাইনমেন্ট এবং তারপরে কমা অপারেটরের ডান হাত এবং তারপরে টেরিনারি অপারেটর - সমস্ত আইনী জাভাস্ক্রিপ্ট।
4: একটি subexpression পুনরায় নিয়োগ
ভাষ্যকার @ ইলিউসিভ ব্রায়ান উল্লেখ করেছেন যে কমা-অপারেটরের ব্যবহার (পূর্ববর্তী উদাহরণে) অপ্রয়োজনীয় যদি অ্যাসাইনমেন্টটি প্রথম value
বন্ধনীযুক্ত সুবে এক্সপ্রেশন হিসাবে ব্যবহৃত হয়:
var value = ( ( value = someArray.indexOf(3) ) !== -1 ? value : 0 );
নোট করুন যে লজিক্যাল এক্সপ্রেশনগুলিতে নেতিবাচক ব্যবহারগুলি মানুষের পক্ষে অনুসরণ করা আরও শক্ত হতে পারে - সুতরাং উপরের সমস্ত উদাহরণে পরিবর্তনের idx !== -1 ? x : y
মাধ্যমে পড়ার জন্য সহজ করা যেতে পারে idx == -1 ? y : x
:
var value = ( ( value = someArray.indexOf(3) ) == -1 ? 0 : value );
if
এবং একটি নয়if/else