.Map, .Every, এবং .for এর মধ্যে পার্থক্য কী?


118

আমি সবসময় ভাবতাম যে তাদের মধ্যে পার্থক্য কী। তারা সবাই একই জিনিস করছে বলে মনে হচ্ছে ...


6
কেউ একটি jQuery ট্যাগ জুড়েছে ... বিবেচনায় everyএবং forEachjQuery এর পদ্ধতি নয়, আমি মনে করি এটি অসম্ভাব্য প্রশ্ন কোন ভাবেই jQuery এর সাথে সম্পর্কিত নয়। বিকাশকারী.মোজিলা.আর.ইন
জাভা স্ক্রিপ্ট / নতুন_ইন_ জাভা স্ক্রিপ্ট / .6.

আমি মনে করি আপনি যে উত্তরটি খুঁজছেন তার এই লিঙ্কটির উত্তর থাকা উচিত।
zBomb

আমি কি এই ভেবে ঠিক আছি যে আপনি আমার আগের মন্তব্যে লিঙ্কে বর্ণিত নতুন মজিলা নির্দিষ্ট অ্যারে পদ্ধতিগুলি উল্লেখ করছেন?
জেমস আলার্ডার্ডিস

@ জামেস - এগুলি মজিলা নির্দিষ্ট নয় । আমি ওয়েবকিট এবং অপেরা ডক্সের সাথেও একটি লিঙ্ক ভাগ করব, তবে আমার মাথার উপরের দিক থেকে তারা কোথায় আছে তা আমি জানি না।
গিলি 3

@ গিলি 3 - আহ, ভালো কথা। আমি বিশ্বাস করি যে তারা কেবল আই 9 তে সমর্থিত যদিও নীচে নয়।
জেমস অ্যালার্ডাইস

উত্তর:


224

পার্থক্যটি ফেরতের মানগুলির মধ্যে।

.map() আসল আইটেমটিতে কিছু পদক্ষেপ নিয়ে তৈরি করা বস্তুর একটি নতুন অ্যারে প্রদান করে

.every() একটি বুলিয়ান প্রদান করে - সত্য যদি এই অ্যারের প্রতিটি উপাদান সরবরাহিত পরীক্ষামূলক ক্রিয়াকে সন্তুষ্ট করে। এর সাথে একটি গুরুত্বপূর্ণ পার্থক্য .every()হ'ল পরীক্ষার ফাংশনটি অ্যারেতে প্রতিটি উপাদানগুলির জন্য সর্বদা কল করা যায় না। একবার টেস্টিং ফাংশনটি কোনও উপাদানের জন্য মিথ্যা ফেরত দেয়, আর অ্যারে উপাদানগুলি পুনরাবৃত্তি হয় না। সুতরাং, টেস্টিং ফাংশনটির সাধারণত কোনও পার্শ্ব প্রতিক্রিয়া হওয়া উচিত ।

.forEach() কিছুই প্রদান করে না - এটি অ্যারের প্রতিটি আইটেমের জন্য প্রদত্ত ক্রিয়া সম্পাদন করে অ্যারেটিকে পুনরাবৃত্তি করে।

এগুলি এবং এমডিএন তে আরও অনেক অ্যারে পুনরাবৃত্তি পদ্ধতি সম্পর্কে পড়ুন ।


পর্যায়ক্রমে, MDN উদ্ধৃত করা যেতে পারে
জোশউইলিক

3
@ জোশ - আমি এমডিএন উদ্ধৃত করেছি। প্রতিটি পদ্ধতির নাম এমডিএন-তে এটি সম্পর্কিত ডকুমেন্টেশনের সাথে যুক্ত থাকে।
গিলি 3

@ gilly3, আমার কাছে ক্ষমা চেয়ে, আমি উপর নীল টেক্সট glossed>>।
JoshWillik

.EachEach () ফিরিয়ে দেয় এখন কিছুই ভুল নেই, সম্ভবত এটি 2012 সালে নষ্ট হয় নি তবে 2015 এ কমপক্ষে ক্রোমে, এই arr2 = ['মামলা', 'জো', 'বেন', 'লোক', 'টম', 'জন চেষ্টা করে দেখুন) ']; b = arr2.forEach (ফাংশন (এল, ইন্ডেক্স) so কনসোল.লগ (ইনডেক্স + ':' + এল);}); console.log (খ);
জেসন

1
@ ইউজেনমারসার "মূল আইটেম" দ্বারা আমি অ্যারের প্রতিটি উপাদানের আসল মান বোঝায়।
gille3

88

গিলি 3 এর উত্তর দুর্দান্ত। আমি অন্যান্য ধরণের "উপাদানগুলির মাধ্যমে লুপ" ফাংশন সম্পর্কে কিছুটা তথ্য যুক্ত করতে চেয়েছিলাম wanted

  • .every() (প্রথমবার পুনরাবৃত্তিকারী মিথ্যা বা মিথ্যা কিছু প্রত্যাবর্তন করে লুপিং থামায়)
  • .some() (প্রথমবার পুনরাবৃত্তিকারী সত্য বা সত্যের কিছু প্রত্যাবর্তন বন্ধ করে দেয়)
  • .filter() (ফিল্টার ফাংশনটি সত্য হিসাবে আসে এবং যেখানে এটি মিথ্যা প্রত্যাবর্তন করে সেখানে বাদ দিয়ে এমন উপাদানগুলি সহ একটি নতুন অ্যারে তৈরি করে)
  • .map() (পুনরাবৃত্তকারী ফাংশন দ্বারা ফেরত মানগুলি থেকে একটি নতুন অ্যারে তৈরি করে)
  • .reduce() (পূর্ববর্তী মানগুলিতে পাস করে পুনরাবৃত্তিকারীকে কল করে একটি মান বাড়িয়ে তোলে; বিশদটি সুনির্দিষ্টভাবে দেখুন; অ্যারের সামগ্রী এবং অন্যান্য অনেকগুলি সামগ্রীর সংমিশ্রনের জন্য দরকারী)
  • .reduceRight() (হ্রাস করার মতো, তবে আরোহী ক্রমের পরিবর্তে অবতরণে কাজ করে)

ক্রেডিটকে: টিজে ক্রাউডার প্রতিটি জন্য জাভাস্ক্রিপ্টে একটি অ্যারের উপরে?


আমার কাছ থেকে 100 টি পছন্দ পছন্দ করুন!
শামীম

6

উপরের দুর্দান্ত উত্তরের আরও একটি বিবেচনা শৃঙ্খলিত হয়। ForEach () দিয়ে আপনি চেইন করতে পারবেন না, তবে মানচিত্র () দিয়ে আপনি পারবেন can

উদাহরণ স্বরূপ:

var arrayNumbers = [3,1,2,4,5];

arrayNumbers.map(function(i) {
    return i * 2
}).sort();

.achEach () দিয়ে, আপনি .sort () করতে পারবেন না, আপনি একটি ত্রুটি পাবেন।


0

জন্য Ramda , মধ্যে পার্থক্য R.map()এবং R.forEach()হল:

  1. R.forEach()আসল অ্যারেটি ফিরিয়ে দেয় যেখানে R.map()একটি ফান্টর ফেরত দেয়
  2. R.forEach()কেবল অ্যারেতে অপারেট R.map()করতে পারে তবে কোনও বস্তুতেও কাজ করতে পারে (যেমন, বস্তুর কী / মান জোড়গুলি অ্যারের মতো ধরা হয়)

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