JQuery.each () ব্যবহারে পরবর্তী পুনরাবৃত্তিতে কীভাবে যায়?


434

আমি উপাদানগুলির একটি অ্যারের মাধ্যমে পুনরাবৃত্তি করার চেষ্টা করছি। jQuery এর ডকুমেন্টেশন বলে:

jquery.Each () ডকুমেন্টেশন

অ-মিথ্যা প্রত্যাবর্তন করা লুপের জন্য একটি চালিয়ে যাওয়া বিবৃতি হিসাবে সমান, এটি পরবর্তী পুনরাবৃত্তিতে তাত্ক্ষণিক এড়িয়ে চলে যাবে।

আমি 'রিটার্নকে অ-মিথ্যা' বলে চেষ্টা করেছি; এবং 'অ-মিথ্যা;' (সান্স রিটার্ন) উভয়টিই পরের পুনরাবৃত্তিতে যায় না। পরিবর্তে, তারা লুপটি ভেঙে দেয়। আমি কী মিস করছি?


9
তাদের অসীম প্রজ্ঞায়, jQuery এ বিড এখন এই নোটটি ডকুমেন্টেশন থেকে সরিয়ে নিয়েছে - বা কমপক্ষে, এটি প্রতিটি () পৃষ্ঠাতে নেই । তাই আমি খুব এই প্রশ্ন এখনও এত এখানে পাওয়া যাবে, এবং Google এ এক্সটেনশান দ্বারা দেখতে, এই সেই সহজ জিনিস আমি সবসময় ভুলবেন :) অন্যতম খুশি
— ডগ ম্যাকলিন

উত্তর:


783

অ-মিথ্যা দ্বারা তারা যা বোঝায় তা হ'ল:

return true;

সুতরাং এই কোড:

var arr = ["one", "two", "three", "four", "five"];
$.each(arr, function(i) {
  if (arr[i] == 'three') {
    return true;
  }
  console.log(arr[i]);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

লগ-ইন করবে one, two, four, five।


16
কেবলমাত্র বর্তমান পুনরাবৃত্তি থেকে বেরিয়ে আসার জন্য কেবল 'রিটার্ন' ফিরিয়ে দেওয়া যথেষ্ট। এবং সমস্ত পুনরাবৃত্তিগুলি প্রস্থান করার জন্য মিথ্যা প্রত্যাবর্তন করুন।
— শালিয়াস

7
এটি বলার অপেক্ষা রাখে না যে এটি কাজ করে কারণ এই কোডটি কার্যকর করা হলে আপনি কোনও ফাংশনের মধ্যে থাকেন।
— ইউকুসার 32

যখন আমি ফিরে আসি (আরআর [i] === 'তিন'); কেন এটি কাজ করছে না ??
— অজাইভ

আমার কাছে, অ-মিথ্যা মানে, আপনি মিথ্যা রিটার্ন ব্যতীত অন্য কোনও কিছু ফিরিয়ে দিতে পারবেন;
— হোয়াং ট্রুং

61

'অ-মিথ্যা প্রত্যাবর্তন' এর মাধ্যমে তাদের অর্থ এমন কোনও মান ফিরিয়ে দেওয়া হয় যা মিথ্যা মিথ্যা বলায় কাজ করে না। সুতরাং আপনি আসতে পারে true, 1, 'non-false', বা অন্য যাই হোক না কেন আপনি আপ মনে করতে পারেন।


20
কেন কেবল স্পষ্টতার জন্য নয় "প্রত্যাবর্তন 'চালিয়ে যাও;"
— আলেকজান্ডার মিলস

কি চালিয়ে যেতে হবে ?? সি তীক্ষ্ণ পরিবর্তনের সাথে আমি কাজ করেছিলাম তাই আমি অনুমান করছি এটি
— জেএসেও

@ ব্র্যান্ডিটো এটি একটি সাধারণ লুপের মতো চলছে না - এটি পুনরাবৃত্তভাবে একটি ফাংশন কল করছে, যাতে লুপটি চালিয়ে যেতে পারে যাতে আপনাকে ফাংশনের অভ্যন্তরে প্রসেসিং শেষ করতে হবে।
— টিজে এল

5

জাভাস্ক্রিপ্ট সাজানোর ধরণের 'সত্যতা' এবং 'মিথ্যাচার' ধারণা রয়েছে। যদি কোনও ভেরিয়েবলের মান থাকে তবে সাধারণত 9 টি আপনি দেখতে পাবেন) এর 'সত্যতা' রয়েছে - নাল, বা কোনও মান 'মিথ্যাচার' তেমন প্রবণতা রাখে না। নীচে স্নিপেটগুলি সাহায্য করতে পারে:

var temp1; 
if ( temp1 )...  // false

var temp2 = true;
if ( temp2 )...  // true

var temp3 = "";
if ( temp3 ).... // false

var temp4 = "hello world";
if ( temp4 )...  // true

আশা করি যে সাহায্য করে?

এছাড়াও, ডগলাস ক্রকফোর্ড থেকে এই ভিডিওগুলি পরীক্ষা করে দেখার মতো

আপডেট: ভাঙা লিঙ্কগুলি চিহ্নিত করার জন্য @ সিপিপিথন ধন্যবাদ - আমি এখন কাজের সংস্করণগুলিতে নির্দেশ করতে আপডেট করেছি

জাভাস্ক্রিপ্ট ভাষা

জাভাস্ক্রিপ্ট - ভাল অংশ


1
লিঙ্কগুলি নষ্ট হয়ে গেছে ... 0বিটিডব্লিউ , এটিও একটি মিথ্যা মান এবং এটির উপেক্ষা সত্যবাদী (এবং অন্য কোনও সংখ্যার তুলনায় বিপরীত !-42 === false)।
— সিপিএইচপিথন

4

ভুলে যাবেন না যে আপনি কখনও কখনও পরবর্তী পুনরাবৃত্তিতে পৌঁছতে ব্লকের শেষ প্রান্তে পড়ে যেতে পারেন:

$(".row").each( function() {
    if ( ! leaveTheLoop ) {
        ... do stuff here ...
    }
});

বরং এইভাবে ফিরে আসার চেয়ে:

$(".row").each( function() {
    if ( leaveTheLoop ) 
        return; //go to next iteration in .each()
    ... do stuff here ...
});

3
আমি অভদ্র হতে চাইনি তবে এটি বেদনাদায়ক ভয়াবহ নকশা। মানে ... আমি কলেজের প্রথম 2 বছরে এটি করেছি, যখন আমি আরও ভাল জানতাম না (তখনও আমি এটি পছন্দ করি না), তবে এটি এমন কিছু নয় যা পরামর্শ দেওয়া উচিত ...
— এক্সডাইজু

@ ড্যানিয়েলপেরেজো মিউজোজ, আমি আপনার কথা শুনেছি, তবে আমরা একমত নই। রিটার্নের বিবৃতি না দেওয়ার পছন্দটি আপনার পছন্দ মতো নাও হতে পারে। তবে আমি এটি জমা দিতে হবে যে এটি ভাল / খারাপ জিনিসের পরিবর্তে পছন্দ-অপছন্দ জিনিস thing উভয়ই উদ্দেশ্যমূলকভাবে পরিষ্কার সুবিধা আছে।
— লি মায়াদোর

4
এর বাড়তি বাসা
— বাঁধার

3

লুপ শুধুমাত্র ভঙ্গ আপনি আক্ষরিক আসতে false। উদা:

// this is how jquery calls your function
// notice hard comparison (===) against false
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
   break;
}

এর অর্থ আপনি কিছু না undefinedফিরিয়ে দিলে আপনি যা ফিরিয়ে আনেন সেগুলি সহ আপনি অন্য কোনও কিছু ফিরিয়ে দিতে পারবেন , তাই আপনি খালি রিটার্ন বিবৃতিটি ব্যবহার করতে পারেন:

$.each(collection, function (index, item) {
   if (!someTestCondition)
      return; // go to next iteration

   // otherwise do something
});

এটি সংস্করণ অনুসারে পরিবর্তিত হতে পারে; এটি jquery 1.12.4 এর জন্য প্রযোজ্য। তবে সত্যিই, আপনি যখন ফাংশনটির নীচে থেকে বেরিয়ে যাবেন, আপনিও কিছুই ফিরিয়ে দিচ্ছেন না, এবং এ কারণেই লুপটি অবিরত থাকে, তাই আমি আশা করব যে কোনও কিছুই প্রত্যাবর্তন লুপটি চালিয়ে যেতে পারে না এমন কোনও সম্ভাবনা নেই । লুপটি চালিয়ে যাওয়ার জন্য তারা প্রত্যেকে কিছু ফিরতে শুরু করতে জোর করতে না চাইলে কিছুই ফিরিয়ে দেওয়া চালিয়ে যাওয়ার উপায় হতে পারে না।


-3

jQuery.noop () সাহায্য করতে পারে

$(".row").each( function() {
    if (skipIteration) {
        $.noop()
    }
    else{doSomething}
});

না, এই নুপ () ফাংশনটি কোনওভাবেই সহায়তা করে না। এটি কেবলমাত্র "অন্য" ব্লকটি সক্রিয় না হওয়ার কারণে কাজ করে।
— রুনি লিলিমেটস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.