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.