বিভক্ত স্ট্রিং অ্যারের শেষ উপাদানটি পাওয়া


182

আমার একাধিক বিভাজক নিয়ে বিভক্ত অ্যারের শেষ উপাদানটি পাওয়া উচিত। বিভাজক কমা এবং স্থান হয়। কোনও বিভাজনকারী না থাকলে এটির মূল স্ট্রিংটি ফিরিয়ে দেওয়া উচিত।

যদি স্ট্রিংটি হয় "আপনি কেমন আছেন, আজ করছেন?" এটা "আজ" ফিরে আসা উচিত?

ইনপুটটি "হ্যালো" হলে আউটপুটটি "হ্যালো" হওয়া উচিত।

আমি কীভাবে জাভাস্ক্রিপ্টে এটি করতে পারি?

উত্তর:


119
var str = "hello,how,are,you,today?";
var pieces = str.split(/[\s,]+/);

এই বিন্দুতে, piecesএকটি অ্যারে এবং অ্যারের pieces.lengthআকার ধারণ করে যাতে অ্যারের শেষ উপাদানটি পেতে, আপনি পরীক্ষা করে নিন pieces[pieces.length-1]। যদি কোনও কমা বা স্পেস না থাকে তবে এটি কেবল স্ট্রিংটিকে আউটপুট দেবে।

alert(pieces[pieces.length-1]); // alerts "today?"

55
আপনি pieces.pop()আপনার অ্যারের শেষ আইটেমটি পেতে ব্যবহার করতে পারেন।
ট্রেন্ট

4
ভেরিয়েবলটি সংরক্ষণ না করে str.split () এ আবার উল্লেখ করার জন্য কি এটি ব্যবহার করার কোনও উপায় আছে?
ট্যানার

1
var last = str.split(/[\s,]+/).pop()
জান্ডারওয়ার

788

সব কিছুর জন্য ওয়ান-লাইনার রয়েছে। :)

var output = input.split(/[, ]+/).pop();

6
এখানে ইস্যুটি হ'ল পপ () সেই উপাদানটিকে অ্যারে থেকে সরিয়ে দেয় , ফলে এটি পরিবর্তন করে।
15

50
@ জাংলা: এটি কোনও সমস্যা নয়, যেমন অ্যারে splitকল দ্বারা তৈরি করা হয়েছে , তা কোনওভাবেই রাখা হয় না। অ্যারে থেকে আইটেমটি পপ করে মূল স্ট্রিংটি পরিবর্তন করা হয় না।
গুফা 15

1
উজ্জ্বল, সব
ভ্যাচুয়ালেস

@ গুফা আপনি কি জানেন কীভাবে আমি বিভাজনের শেষ দুটি উপাদান পেতে পারি?
ভিজিটর গেরেরিও

2
@ মারিওল্যাভেরো: এটি একটি কোয়ানটিফায়ার যার অর্থ কোয়ান্টিফায়ার একই {1,}, অর্থাত্ [, ]+সেটের একাধিক অক্ষরের সাথে মিল রয়েছে (কমা এবং স্থান)। এটি দরকারী যখন আপনি স্ট্রিং থেকে সমস্ত শব্দ চান তবে আপনি যখন কেবলমাত্র শেষ শব্দটি চান এটি কোনও কার্যকরী পার্থক্য করে না, এটি কেবল ওভারহেড হ্রাস করে কারণ অ্যারেতে কম স্ট্রিং থাকবে।
গুফা

54
var item = "one,two,three";
var lastItem = item.split(",").pop();
console.log(lastItem); // three

10
আমি মনে করি না পপ () আর্গুমেন্ট নেয়।
গ্রেস শাও


5
তবে, সাধারণভাবে কথা বলতে .split(',').pop()কমা বিচ্ছিন্ন স্ট্রিংয়ের সর্বশেষ উপাদানটির জন্য কাজ করে। শুধু বলুন 'কুফ আমি গুফার দুর্দান্ত উত্তর দ্বারা বিভ্রান্ত হয়েছিলাম, আমি কেবল এটিকে অগ্রাহ্য করেছি কারণ একটি রেইজেক্সের দরকার নেই এবং ভেবেছিল যে কৌশলটি সেখানে আছে! : পি
ক্রেগোক্স

24

আপনি আপনার অ্যারেটি বিপরীত করতে এবং প্রথম উপাদানটি বিবেচনা করতে পারেন। এইভাবে আপনাকে দৈর্ঘ্য সম্পর্কে জানতে হবে না, তবে এটি কোনও আসল উপকারিতা এবং অসুবিধা আনবে না যে বিপরীত ক্রিয়াকলাপটি বড় অ্যারেগুলিতে বেশি সময় নিতে পারে:

array1.split(",").reverse()[0]

এটি যদিও সহজ তবে প্রশ্নে মূল অ্যারেটিও পরিবর্তন করে। সমস্যা হতে পারে বা নাও হতে পারে।

তথ্যসূত্র: https://developer.mozilla.org/en-US/docs/Web/ জাভা স্ক্রিপ্ট / রেফারেন্স / গ্লোবাল_অবজেক্টস / অ্যারে / রিভার্স

সম্ভবত আপনি এটি ব্যবহার করতে পারেন যদিও:

array1.split(",").pop()

1
.pop()পদ্ধতি সর্বোত্তম উত্তর আমি এ পর্যন্ত দেখা করেছি। এ কারণেই এটি তৈরি হয়েছিল!
নিকোলাস পোর্টার

আমি দৃ strongly়ভাবে বিপরীত () এর বিরুদ্ধে পরামর্শ দেব কারণ বিরাট বড় অ্যারেতে ব্যয় হবে। যদি আপনি মিউটেশনটির বিষয়ে চিন্তা করেন না, কেবল পপ () ব্যবহার করুন, অন্যথায় স্লাইস (-1) [0]।
ওয়ার্টওয়ার্ট

13
array.split(' ').slice(-1)[0]

সর্বকালের সেরা এবং আমার প্রিয়।


আহ অবশ্যই। এটি দুর্দান্ত উত্তর কারণ এটি আসল +1টিকে রূপান্তরিত করে না
jhamPac

3

এবং যদি আপনি কোনও অ্যারে নির্মাণ করতে না চান ...

var str = "how,are you doing, today?";
var res = str.replace(/(.*)([, ])([^, ]*$)/,"$3");

ইংরেজিতে ভাঙ্গন হ'ল:

/(anything)(any separator once)(anything that isn't a separator 0 or more times)/

প্রতিস্থাপন ঠিক শেষ বিভাজক পরে স্ট্রিং সঙ্গে পুরো স্ট্রিং প্রতিস্থাপন বলে।

সুতরাং আপনি দেখতে পাবেন কীভাবে এটি সাধারণত প্রয়োগ করা যায়। নোট করুন মূল স্ট্রিংটি সংশোধিত হয়নি।


0
var title = 'fdfdsg dsgdfh dgdh dsgdh tyu hjuk yjuk uyk hjg fhjg hjj tytutdfsf sdgsdg dsfsdgvf dfgfdhdn dfgilkj,n, jhk jsu wheiu sjldsf dfdsf hfdkdjf dfhdfkd hsfd ,dsfk dfjdf ,yier djsgyi kds';
var shortText = $.trim(title).substring(1000, 150).split(" ").slice(0, -1).join(" ") + "...More >>";

0

আপনি সরাসরি অ্যারে সূচকটি অ্যাক্সেস করতে পারেন:

var csv = 'zero,one,two,three'; csv.split(',')[0]; //result: zero csv.split(',')[3]; //result: three


3
হ্যালো টনং, তাই আপনাকে স্বাগতম! আমি মনে করি যে প্রশ্নের উত্তর হিসাবে অনুরোধটি উত্তরটি স্থান বিভাজকটিকে বিবেচনা করে না।
জন-ফিলিপ

1
এই উত্তরটি নির্বিচারে স্ট্রিং অ্যারের দৈর্ঘ্য সমর্থন করে না
নিমা সুরেশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.