কমা দিয়ে স্ট্রিংকে অ্যারেতে রূপান্তর করুন


364

আমি কীভাবে একটি জাভাস্ক্রিপ্ট অ্যারে একটি স্ট্রিং রূপান্তর করতে পারি?

কোডটি দেখুন:

var string = "0,1";
var array = [string];
alert(array[0]);

এই ক্ষেত্রে, alertপপ আপ হবে 0,1। যখন এটি কোনও অ্যারে হবে, এটি একটি পপ-আপ করবে 0এবং যখন alert(array[1]);ডাকা হবে তখন এটি পপ-আপ করা উচিত 1

এই জাতীয় স্ট্রিংটিকে একটি জাভাস্ক্রিপ্ট অ্যারে রূপান্তর করার কোনও সুযোগ আছে কি?


আপনি এটি কেন চান তার উপর নির্ভর করে স্ট্রিং এবং অ্যারেগুলি ইতিমধ্যে খুব সাদৃশ্যযুক্ত (যেমন string[0] === '0'আপনার প্রশ্নে) বেশিরভাগ ক্ষেত্রে আপনি একটি স্ট্রিংটিকে অক্ষরের অ্যারে হিসাবে বিবেচনা করতে পারেন এবং এতে অ্যারে পদ্ধতি ব্যবহার করতে পারেন।
পল এস

@ পলস .: এটি আইই ৮ এবং এর চেয়ে কম ব্যর্থ হবে ।
আমি অলস


সব ধরণের স্ট্রিং সমর্থন করার জন্য সেরা অনুশীলন। এখানে stackoverflow.com/a/32657055/2632619
Andi AR

উত্তর:


667

এর মতো সাধারণ অ্যারে সদস্যগুলির জন্য, আপনি ব্যবহার করতে পারেন JSON.parse

var array = JSON.parse("[" + string + "]");

এটি আপনাকে সংখ্যার একটি অ্যারে দেয়।

[0, 1]

আপনি যদি ব্যবহার করেন তবে আপনার .split()স্ট্রিংগুলির একটি অ্যারে শেষ হবে।

["0", "1"]

কেবল সচেতন থাকুন যা JSON.parseআপনাকে সমর্থিত ডেটা ধরণের ক্ষেত্রে সীমাবদ্ধ রাখবে। আপনার যদি মান undefinedবা ফাংশনগুলির প্রয়োজন হয় তবে আপনার eval()জাভা স্ক্রিপ্ট পার্সার ব্যবহার করতে হবে ।


আপনি যদি ব্যবহার করতে চান .split()তবে আপনি একটি অ্যারের Array.prototype.mapনাম্বারও চান তবে আপনি ব্যবহার করতে পারেন , যদিও আপনাকে এটি আইই 8 এবং এটির জন্য কমিয়ে বা কেবল একটি traditionalতিহ্যবাহী লুপ লিখতে হবে।

var array = string.split(",").map(Number);

4
JSON.parse();আইই 6, আই 7 এ উপলভ্য নয় তাও সচেতন থাকুন । আমি মনে করি এক্ষেত্রে String.split(',');বিষয়টি আরও সহজ।
স্কানলিফ

@ সানলিফ: সত্য, একটি শিম প্রয়োজন হবে, বা কেউ এটি শিম করার জন্য jQuery পদ্ধতির গ্রহণ করতে পারে var array = (new Function("return [" + string + "];"))().split()নম্বরগুলি প্রয়োজন না হলে ব্যবহার করা ঠিক আছে, অন্যথায় আপনাকে ফলাফলটি ম্যাপ করতে হবে।
আমি অলস ঘৃণা করি

10
@ ডাউনভোটার: উত্তরের সাথে কী ভুল তা বর্ণনা করার চেষ্টা করুন যাতে আপনি কীভাবে ভুল করছেন তা আমি প্রদর্শন করতে পারি।
আমি অলস

@I এই স্বল্পতা সমর্থন বস্তুর string.see এখানে অলস ঘৃণা stackoverflow.com/a/32657055/2632619
Andi, শিরোণামে

@ ফারজাদওয়াইজেড (ব্যবহার করে eval) এর বিষয়ে সতর্ক থাকুন । অ্যারেতে ক্লায়েন্টের পাশের ইনপুট থেকে মানগুলি থাকলে এটি অনিরাপদ।
উইল্ট


86

এটি সহজেই ES6 এ অর্জন করা হয় ;

আপনি অ্যারের সাথে স্ট্রিংগুলিকে অ্যারেতে রূপান্তর করতে পারেন ।

Array.from("01")

কনসোল.লগ হবে

['0', '1']

আপনি ঠিক যা খুঁজছেন তা হ'ল।


1
এটা সত্যিই দারুন. আমি থেকে আমার কোড সরানো JSON.parseকরার Array.fromটার হিসেবে ব্যবহার ES6। আপনাকে ধন্যবাদRay Kim
warশ্বর প্রসাদ যদ্দনপুদি

কনসোল.লগ (টাইপ অফ ডেটা); // স্ট্রিং ========== var মাইআরে = অ্যারে.ফ্রোম (ডেটা); ============ কনসোল.লগ (টাইপ অফ মাইআরাই); // অবজেক্ট সম্পত্তি বা পদ্ধতি 'থেকে' =========== সমর্থন করে না কেন এটি কেন?
জানাতব্বক শার্শেভ

1
তবে Array.from("0, 1, 233")ফিরবে ["0", ",", " ", "1", ",", " ", "2", "3", "3"], কী চাইলে [0, 1, 233] ?
টিনা চেন

17
এটি প্রতিটি একক অক্ষরকে অ্যারে উপাদান হিসাবে রূপান্তর করছে। তবে অ্যারে উপাদান হতে আমাদের কেবল কমা দ্বারা পৃথক স্ট্রিং দরকার। সুতরাং একটি বৈধ সমাধান নয়।
এডিসন

1
এই পদ্ধতিটি কেবল তখনই নির্ভরযোগ্য যখন আর্গুমেন্টের Setস্ট্রিং থাকে।
জোশ হাবদাস

57

যদি স্ট্রিংটি ইতিমধ্যে তালিকা ফর্ম্যাটে থাকে তবে আপনি JSON.parse ব্যবহার করতে পারেন:

var a = "['a', 'b', 'c']";
a = a.replace(/'/g, '"');
a = JSON.parse(a);

24

সমস্ত ধরণের স্ট্রিং রূপান্তর করুন

var array = (new Function("return [" + str+ "];")());



var string = "0,1";

var objectstring = '{Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"}, {Name:"Dress", CatGroupName:"Clothes", Gender:"female"}, {Name:"Belt", CatGroupName:"Leather", Gender:"child"}';

var stringArray = (new Function("return [" + string+ "];")());

var objectStringArray = (new Function("return [" + objectstring+ "];")());

জেএসফিডাল https://jsfiddle.net/7ne9L4Lj/1/

কনসোলে ফলাফল

এখানে চিত্র বর্ণনা লিখুন

কিছু অনুশীলন অবজেক্ট স্ট্রিং সমর্থন করে না

- JSON.parse("[" + string + "]"); // throw error

 - string.split(",") 
// unexpected result 
   ["{Name:"Tshirt"", " CatGroupName:"Clothes"", " Gender:"male-female"}", "      {Name:"Dress"", " CatGroupName:"Clothes"", " Gender:"female"}", " {Name:"Belt"",    " CatGroupName:"Leather"", " Gender:"child"}"]

দুর্দান্ত ফাংশন আমি এটি ব্যবহার করি তবে দুর্ভাগ্যক্রমে এটি স্ট্রিং বা চিহ্নগুলির জন্য কাজ করে না: যেমন "0, s" কোনও ধারণা কীভাবে এটি ঠিক করতে হয়?
sqp_125

1
@ sqp_125 0, 'গুলি' চেষ্টা করে দেখুন?
অবাস্তবতা

19

এর মতো সাধারণ অ্যারে সদস্যগুলির জন্য, আপনি JSON.parse ব্যবহার করতে পারেন।

var listValues = "[{\"ComplianceTaskID\":75305,\"RequirementTypeID\":4,\"MissedRequirement\":\"Initial Photo Upload NRP\",\"TimeOverdueInMinutes\":null}]";

var array = JSON.parse("[" + listValues + "]");

এটি আপনাকে সংখ্যার একটি অ্যারে দেয়।

এখন আপনার পরিবর্তনশীল মানটি অ্যারে.লেন্থ = 1 এর মতো

মান আউটপুট

array[0].ComplianceTaskID
array[0].RequirementTypeID
array[0].MissedRequirement
array[0].TimeOverdueInMinutes


16

ES6 ব্যবহার করে অন্য একটি বিকল্প স্প্রেড সিনট্যাক্স ব্যবহার করছে ।

var convertedArray = [..."01234"];

var stringToConvert = "012";
var convertedArray  = [...stringToConvert];
console.log(convertedArray);


2
অসাধারণ! অ্যারে.ফর্মের উত্তরের সাথে তাদের ES6 সমাধানের একমাত্র উত্তর হওয়া উচিত।
আরটিওম প্রানোভিচ

10

একটি অনামী ফাংশন সহ অন্তর্নির্মিত মানচিত্রের ফাংশনটি ব্যবহার করুন, যেমন:

string.split(',').map(function(n) {return Number(n);});

আপনি এটি কীভাবে ব্যবহার করবেন তা এখানে [সম্পাদনা] করুন

var string = "0,1";
var array = string.split(',').map(function(n) {
    return Number(n);
});
alert( array[0] );

1
এটি সর্বাধিক প্রযোজ্য উত্তর। JSON স্বেচ্ছাচারী সীমানা (যেমন ট্যাব, স্থান, ইত্যাদি) জন্য ব্যবহার করা যাবে না
জাভাদবা

আপনার অ্যারে মানগুলির ভিতরে কমা থাকতে পারে এমন স্ট্রিং মান হলে এটি কাজ করবে না। উদাহরণস্বরূপ: "123, 'a string with a , comma', 456"। এই জাতীয় কেসগুলি সঠিকভাবে পরিচালনা করতে আপনি আরও জটিল রেজেক্স ব্যবহার করতে পারেন (উদাহরণস্বরূপ এখানে প্রস্তাবিত মতো কিছু )।
উইল্ট করুন

@ ভালই হবে না তবে এটি ঠিক করার জন্য আপনি
রেইজেক্স

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

3

নীচে আরও "এটি নিজে চেষ্টা করুন" উদাহরণগুলি।

সংজ্ঞা এবং ব্যবহার বিভাজন () পদ্ধতিটি একটি স্ট্রিংকে সাবস্ট্রিংয়ের অ্যারেতে বিভক্ত করতে ব্যবহৃত হয় এবং নতুন অ্যারে প্রদান করে।

টিপ: যদি খালি স্ট্রিং ("") বিভাজক হিসাবে ব্যবহৃত হয় তবে স্ট্রিংটি প্রতিটি অক্ষরের মধ্যে বিভক্ত হয়।

দ্রষ্টব্য: বিভক্ত () পদ্ধতিটি মূল স্ট্রিংটি পরিবর্তন করে না।

var res = str.split(",");

3

স্ট্রিংকে অ্যারেতে রূপান্তর করতে আপনি জাভাস্ক্রিপ্ট স্প্রেড সিনট্যাক্স ব্যবহার করতে পারেন । নীচের সমাধানে, আমি কমাটি সরিয়ে তারপর স্ট্রিংটিকে একটি অ্যারেতে রূপান্তর করি।

var string = "0,1"
var array = [...string.replace(',', '')]
console.log(array[0])

2

কীভাবে জাভাস্ক্রিপ্টে কমা বিচ্ছিন্ন স্ট্রিংকে একটি অ্যারে রূপান্তর করবেন?

var string = 'hello, world, test, test2, rummy, words';
var arr = string.split(', '); // split string on comma space
console.log( arr );

//Output
["hello", "world", "test", "test2", "rummy", "words"]

নীচের উপায়গুলি ব্যবহার করে জাভাস্ক্রিপ্টে স্ট্রিংকে অ্যারে রূপান্তর করার আরও উদাহরণগুলির জন্য:

  1. বিভক্ত () - কোনও বিভাজনকারী নেই:
  2. বিভক্ত () - খালি স্ট্রিং বিভাজক:
  3. বিভক্ত () - প্রারম্ভিক / শুরুতে পৃথক:
  4. নিয়মিত এক্সপ্রেশন বিভাজক:
  5. প্যারেন্টিসিস ক্যাপচারিং:
  6. সীমাবদ্ধ তর্ক সহ স্প্লিট ()

    এই লিঙ্কটি দেখুন ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/



0

স্প্লিট (",") স্ট্রিংসকে কমা দিয়ে স্ট্রিং অ্যারে রূপান্তর করতে পারে, এখানে আমার কোড স্নিপেট।

    var input ='Hybrid App, Phone-Gap, Apache Cordova, HTML5, JavaScript, BootStrap, JQuery, CSS3, Android Wear API'
    var output = input.split(",");
    console.log(output);

["হাইব্রিড অ্যাপ", "ফোন-গ্যাপ", "অ্যাপাচি কর্ডোভা", "এইচটিএমএল 5", "জাভাস্ক্রিপ্ট", "বুটস্ক্র্যাপ", "জ্যাকিউয়ারি", "সিএসএস 3", "অ্যান্ড্রয়েড ওয়ার্ল্ড এপিআই"]


0

var i = "[{a:1,b:2}]",
    j = i.replace(/([a-zA-Z0-9]+?):/g, '"$1":').replace(/'/g,'"'),
    k = JSON.parse(j);

console.log(k)

// => নিয়মিত অভিব্যক্তি ঘোষণা করা

[a-zA-Z0-9] => সমস্ত এজেড, এজেড, 0-9 এর সাথে মেলে

(): => সমস্ত মিলিত উপাদানগুলিকে গ্রুপ করুন

Replacement 1 => প্রতিস্থাপনের স্ট্রিং রেগেক্সের প্রথম ম্যাচের গ্রুপকে বোঝায়।

g => বিশ্ব পতাকা


0

ব্যবহারের উদাহরণ Array.filter:

var str = 'a,b,hi,ma,n,yu';

var strArr = Array.prototype.filter.call(str, eachChar => eachChar !== ',');

-1

আপনি কেন ,কমা এবং split('')স্ট্রিংয়ের পরিবর্তে এমনটি তৈরি করবেন না যার ফলস্বরূপ ফলাফল আসবে ['0', '1'], তদ্ব্যতীত, আপনি parseInt()উপাদানটিকে পূর্ণসংখ্যার ধরণে রূপান্তর করতে ফলাফলটি মোড়ানো করতে পারেন ।

it('convert string to array', function () {
  expect('0,1'.replace(',', '').split('')).toEqual(['0','1'])
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.