কীভাবে জাভাস্ক্রিপ্টের সাহায্যে একটি অ্যারে সহজে কাটা যায়?


107

লিনকের একটি সুবিধাজনক অপারেটর পদ্ধতি রয়েছে Take()যা প্রয়োগ করা যেকোনো কিছুতে প্রদত্ত সংখ্যক উপাদানকে ফিরিয়ে আনতে বলা হয় IEnumerable। অ্যারে নিয়ে কাজ করার জন্য jQuery তে কি একই রকম কিছু আছে?

অথবা, অন্যভাবে জিজ্ঞাসা করা হয়েছিল: আমি কীভাবে জাভাস্ক্রিপ্টে একটি অ্যারে ছাঁটাই করতে পারি?

উত্তর:


192

একটি স্লাইস পদ্ধতি আছে

array.slice(0, 4);

প্রথম চারটি উপাদান ফেরত দেবে।

আপনি যদি অন্য মানগুলি বাতিল করতে চান তবে এটিটিকে আপনার ভেরিয়েবলের কাছে ফিরিয়ে দিতে ভুলবেন না।

দ্রষ্টব্য: এটি স্রেফ নিয়মিত জাভাস্ক্রিপ্ট, জ্যাকুইয়ের দরকার নেই।


15
না (0,4) প্রথম 4 টি প্রথম 4 টি ফেরত দেবে?
সাইমন

11
এটা আসলে সত্য নয়। সাইমন কিপ সঠিক - .স্লাইস () পদ্ধতির দ্বিতীয় যুক্তিটি শেষ উপাদানটি ফিরে আসার পরে অ্যারে অবস্থান । অ্যারে.স্লাইস (0, 4) 0, 1, 2 এবং 3 - মোট 4 টি উপাদানকে ফিরিয়ে দেয়। দ্বিতীয় যুক্তিটিকে কাট অফ পয়েন্ট হিসাবে ভাবুন, যেখানে .lice (0, x) অ্যারের শুরু থেকে সমস্ত উপাদানকে x সহ না করে ফিরিয়ে দেবে ।
চরম বিশৃঙ্খল

4
endঅন্তর্ভুক্ত নয়, তবে @ সিমোনকিপ ঠিক আছে, দেখুন MDN বিকাশকারী.মোজিলা.আর.ইন-
এএসটিআর

4
ভেরিয়েবলটিতে এটি পুনরায় নির্ধারণ করতে ভুলবেন না, এটি যতটা সহজ মনে হয়
ততই

6
খারাপ উপায়, আপনি একটি নতুন অ্যারে উদাহরণ তৈরি করেন, জেএস কোডিং করার সময় মেমরির ব্যবহার মনে রাখবেন কোনও খারাপ ধারণা নয়।
জি.গেজ 27'15

131

(২ বছর পরে ...) আপনি যদি সত্যিই কোনও অ্যারে ছাঁটাই করতে দেখেন তবে আপনি lengthবৈশিষ্ট্যটিও ব্যবহার করতে পারেন :

var stooges = ["Moe", "Larry", "Shemp", "Curly", "Joe"];
stooges.length = 3; // now stooges is ["Moe", "Larry", "Shemp"]

নোট: আপনি দৈর্ঘ্য যা ধার্য আর বর্তমান দৈর্ঘ্যের তুলনায়, অনির্ধারিত অ্যারের উপাদান, চালু করা হয় নিচের চিত্রের মতন।

var stooges = ["Moe", "Larry", "Shemp"];
stooges.length = 5;
alert(typeof stooges[4]); // alerts "undefined"

সম্পাদনা:

নীচে উল্লিখিত @twitehead হিসাবে, অপরিজ্ঞাত উপাদানগুলির সংযোজন এড়ানো থেকে এড়ানো যেতে পারে:

var stooges = ["Moe", "Larry", "Shemp"];
stooges.length = Math.min(stooges.length, 5); 
alert(stooges.length)// alerts "3"

5
আমি যখন কোনও কোডে দেখেছি তখন আমি প্রথমে অবাক হয়েছিলাম ... তবে এটি সর্বোত্তম উপায় (আপনি যদি সূচক 0 থেকে ছাঁটাই করছেন) ডেভিডওয়ালশ.নেম
এমপিটি-

5
এটি একটি আশ্চর্যজনক সহজ সমাধান।
ডোমিনিক

4
ময়লা আবর্জনা সংগ্রহের উপায় কী?
জি। গেজ

4
@ জোনাথানম আসলে, নাল মানগুলি প্রবর্তিত হয় না; নতুন ভেরিয়েবলগুলি অপরিজ্ঞাত করা হয়েছে, কারণ এগুলি ঘোষিত হলেও কোনও মান নির্ধারিত হয়নি।
হাভার্ড গিথাস

4
আশ্চর্য! এটি বলার অপেক্ষা রাখে না যে এই পদ্ধতিটি Arrayনতুন তৈরির পরিবর্তে একই পরিবর্তন করছে Array
রুমমি 9

22

আপনি যদি জিজ্ঞাসা করছেন কীভাবে কাটাবেন (শেষ থেকে উপাদানগুলি সরিয়ে একটি অ্যারে পরিবর্তন করুন) তবে স্প্লাইসটি ব্যবহার করুন :

var a1 = [2,4,6,8];
var a2 = a1.splice(-2,2); // a1=[2,4], a2=[6,8]

আপনি যদি আসল পরিবর্তন না করে কোনও অ্যারের উপসেটটি কীভাবে পুনরুদ্ধার করবেন তা জিজ্ঞাসা করছেন তবে স্লাইসটি ব্যবহার করুন ।

var a1 = [2,4,6,8];
var a2 = a1.slice(-2); // a1=[2,4,6,8], a2=[6,8]

স্প্লাইস পরিবর্তনগুলি, স্লাইস অ্যাক্সেসগুলি কেবল মনে রাখবেন। প্রথম আরগ হিসাবে নেতিবাচক সংখ্যাগুলি অ্যারের শেষ থেকে সূচকটি নির্দেশ করে।


13

। দৈর্ঘ্যের সম্পত্তিটি একটি কম মানতে সেট করুন।

অফিসিয়াল ডকুমেন্টেশন: অ্যারে.প্রোটোটাইপ.লেন্থ


4
অ্যারেতে সমস্ত উপাদানকে হত্যা করতে, দৈর্ঘ্যের শূন্যকে নির্ধারণ করা সবচেয়ে সহজ।
হনমারী

5

যদি আপনি উভয়ই উপাদানগুলি পেতে এবং অ্যারে থেকে তাদের সরিয়ে রাখতে চান তবে স্প্লাইস ব্যবহার করুন

আপনি যদি অ্যারেগুলিতে উপাদান রাখতে চান তবে স্লাইসটি ব্যবহার করুন


1

আপনি যদি অ্যারে থেকে উপাদানগুলি নির্বাচন করে বের করতে চান তবে আপনি jQuery.grep ব্যবহার করতে পারেন পদ্ধতিটি ।

(jQuery ডক্স থেকে)

var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];

$("div").text(arr.join(", "));

arr = jQuery.grep(arr, function(n, i){
  return (n != 5 && i > 4);
});

$("p").text(arr.join(", "));

arr = jQuery.grep(arr, function (a) { return a != 9; });
$("span").text(arr.join(", "));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.