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


115

আমি একটি "মান" তালিকার মাধ্যমে পুনরাবৃত্তি করার চেষ্টা করছি এবং এটিকে একটি স্ট্রিংয়ে রূপান্তর করব। কোডটি এখানে:

var blkstr = $.each(value, function(idx2,val2) {                    
     var str = idx2 + ":" + val2;
     alert(str);
     return str;
}).get().join(", ");    

সতর্কতা () ফাংশনটি ঠিক কাজ করে এবং যথাযথ মান প্রদর্শন করে। তবে একরকম, jquery এর .get () ফাংশনটি সঠিক ধরণের অবজেক্টটি পায় না এবং ব্যর্থ হয়। আমি কি ভুল করছি?


5
"মান" কি? এটা কি অ্যারে? যদি তাই থাকে তবে str = value.join (',') ঠিক কাজ করতে পারে।
স্টিফ্যানস

হ্যাঁ. আমি যদি .get () অংশটি মন্তব্য করি তবে আমি সতর্কতা বাক্সগুলি পেয়ে যা "id1: val1", "id2: val2" ইত্যাদি প্রদর্শন করে।
নিও

আপনার অর্থ কি "... সঠিক ধরণের অবজেক্ট পাবেন"? (প্রশ্ন জিজ্ঞাসা ক্লিক করার আগে একটি দ্রুত প্রুফ্রেড সাধারণত একটি ভাল ধারণা)) (আমি আমার আগের মন্তব্যটি সরিয়ে দিয়েছিলাম যা বরং আরও দৃ strongly়ভাবে বলা হয়েছিল - এই প্রশ্নটিতে অনেক কম টাইপস রয়েছে এবং অনেকগুলি এর চেয়ে বেশি))
টিজে ক্রোডার

উত্তর:


131

যদি valueসহযোগী অ্যারে হয় তবে এই জাতীয় কোডটি কার্যকর হবে:

var value = { "aaa": "111", "bbb": "222", "ccc": "333" };
var blkstr = [];
$.each(value, function(idx2,val2) {                    
  var str = idx2 + ":" + val2;
  blkstr.push(str);
});
console.log(blkstr.join(", "));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

(আউটপুট দেব কনসোলে প্রদর্শিত হবে)

যেমন ফেলিক্স উল্লিখিত হয়েছে, each()কেবল অ্যারের পুনরাবৃত্তি করছে, এর চেয়ে বেশি কিছুই নয়।


118

অ্যারে থেকে স্ট্রিংয়ে রূপান্তর করা এত সহজ!

var A = ['Sunday','Monday','Tuesday','Wednesday','Thursday']
array = A + ""

এটি এখন একটি স্ট্রিং। :)


7
পরিবর্তে আমি A.toString () এর পরামর্শ দেব তাই আপনি কী করছেন তা আরও স্পষ্ট।
জাস্টিন

8
আপনি যদি তা করেন তবে আপনি [1,2,[3]].toString()পাবেন 1,2,3, যা বেশ জঞ্জাল। একই উত্তর একই ভাঙা, নেটিভ স্ট্রিং পদ্ধতিতে একই কলটি লেখার জন্য এই উত্তরটি আরও খারাপ উপায়। 42 upvotes ??
কার্ল স্মিথ

8
আপনি এর মতো অ্যারেতেও যোগ দিতে পারেন['Sunday','Monday','Tuesday','Wednesday','Thursday'].join('');
ইটোক্সিন

1
Array.join()স্পষ্টতই সেরা বিকল্প, যেহেতু এটি কমাগুলির সাহায্যে মানগুলি সহজেই বোঝায় না, তবে ব্যবহারকারীকে কীভাবে কনকনেশনেশন করা উচিত তা নির্ধারণ করার অনুমতি দেয়। উদাহরণস্বরূপ আপনি কমা + ফাঁকা স্থান ব্যবহার করতে পারেন।
ফিলিপ লিও

1
এটি আমার জন্য নিখুঁত। আমি একটি অ্যারে যাচ্ছি যা এপিআই কলের জন্য কমা ছাড়াই কমা দ্বারা পৃথক স্ট্রিংয়ে পরিবর্তিত হয়। আবার ধন্যবাদ.
নিক ডি

104

আপনি .toString()কমা দিয়ে একটি অ্যারেতে যোগ দিতে ব্যবহার করতে পারেন ।

var array = ['a', 'b', 'c'];
array.toString(); // result: a,b,c

অথবা, এর সাথে পৃথককারী সেট করুন array.join('; '); // result: a; b; c


3
আমি কেবলমাত্র অ্যারের আক্ষরিক অর্থে একটি স্ট্রিংয়ে অনুবাদ করা এবং আমার পক্ষে চর্বি ছাঁটাইয়ের জন্য রেজেক্স ব্যবহার করতে বাধ্য করা হবে বলে আশাবাদী, তবে এটি ওহ সো মোচ বেটার! ধন্যবাদ জাস্টিন
ক্র্যানবেরি

52

নিশ্চিত যে আপনি এটি চেয়েছিলেন কি না

var arr = [A, B, C];
var arrString = arr.join(", ");

নিম্নলিখিত ফলাফলের ফলাফল:

এ, বি, সি


1
এটাই এখন পর্যন্ত সরলতম উপায়,
কুডোস

1
কমা জন্য আমার একটি অতিরিক্ত জায়গা প্রয়োজন, এটি ছিল একমাত্র সহজ উপায়।
তালহা তালিপ আর্কগেজ

1
সহজ এবং সহজ উপায়। ধন্যবাদ
রাউল এ।

36

একটি অ্যারেকে স্ট্রিতে রূপান্তর করার জন্য চারটি পদ্ধতি।

একটি স্ট্রিং জোর দেওয়া

var arr = ['a', 'b', 'c'] + [];  // "a,b,c"

var arr = ['a', 'b', 'c'] + '';  // "a,b,c"

কল করা হচ্ছে .toString()

var arr = ['a', 'b', 'c'].toString();  // "a,b,c"

স্পষ্টভাবে ব্যবহার করে যোগদান .join()

var arr = ['a', 'b', 'c'].join();  // "a,b,c" (Defaults to ',' seperator)

var arr = ['a', 'b', 'c'].join(',');  // "a,b,c"

আপনি অন্যান্য বিভাজক ব্যবহার করতে পারেন, উদাহরণস্বরূপ, ', '

var arr = ['a', 'b', 'c'].join(', ');  // "a, b, c"

ব্যবহার JSON.stringify()

এটি ক্লিনার, কারণ এটি অ্যারের ভিতরে থাকা স্ট্রিংগুলি উদ্ধৃত করে এবং নেস্টেড অ্যারেগুলি সঠিকভাবে পরিচালনা করে।

var arr = JSON.stringify(['a', 'b', 'c']);  // '["a","b","c"]'

17

jQuery.eachশুধু অ্যারের উপর লুপিং করা হয়, এটা ফেরত মান সঙ্গে কিছু না Δ । আপনি সন্ধান করছেন jQuery.map( get()আপনি jQuery অবজেক্টের সাথে লেনদেন করছেন না বলেও আমি এটি অপ্রয়োজনীয় বলে মনে করি ):

var blkstr = $.map(value, function(val,index) {                    
     var str = index + ":" + val;
     return str;
}).join(", ");  

ডেমো


তবে এক্ষেত্রে কেন jQuery ব্যবহার করবেন? mapকেবলমাত্র উপাদান প্রতি একটি অপ্রয়োজনীয় ফাংশন কল উপস্থাপন করে।

var values = [];

for(var i = 0, l = value.length; i < l; i++) {
    values.push(i + ':' + value[i]);
}

// or if you actually have an object:

for(var id in value) {
    if(value.hasOwnProperty(id)) {
        values.push(id + ':' + value[id]);
    }
}

var blkstr = values.join(', ');

।: এটি কেবলমাত্র রিটার্ন মানটি ব্যবহার করে এটির উপাদানগুলির উপর লুপ চালিয়ে যাওয়া উচিত কিনা। "মিথ্যা" মানটি ফিরলে লুপটি থামবে।


আমি এখানে ধরণের কোড "ক্লিনড" করেছি। আমি jquery অবজেক্টের সাথে আচরণ করছি। ধন্যবাদ, মানচিত্র পুরোপুরি কাজ করে।
নিও

@ নিও: আপনি কেবল তখনই প্রয়োজন mapযদি কোনও জিকুয়েরি valueঅবজেক্ট হয়। এবং তারপরে আপনার ব্যবহার করা উচিত value.map(...).get()। তবে যদি আপনার কাছে কেবল jQuery অবজেক্টের একটি অ্যারে থাকে তবে আপনার প্রয়োজন নেই get। আপনাকে স্বাগতম :)
ফেলিক্স ক্লিং

9

ব্যবহার করুন join()এবং বিভাজক।

কাজের উদাহরণ

var arr = ['a', 'b', 'c', 1, 2, '3'];

// using toString method
var rslt = arr.toString(); 
console.log(rslt);

// using join method. With a separator '-'
rslt = arr.join('-');
console.log(rslt);

// using join method. without a separator 
rslt = arr.join('');
console.log(rslt);


4

এটি আমার ফাংশন, জেসসনে অবজেক্ট বা অ্যারে রূপান্তর করুন

function obj2json(_data){
    str = '{ ';
    first = true;
    $.each(_data, function(i, v) { 
        if(first != true)
            str += ",";
        else first = false;
        if ($.type(v)== 'object' )
            str += "'" + i + "':" + obj2arr(v) ;
        else if ($.type(v)== 'array')
            str += "'" + i + "':" + obj2arr(v) ;
        else{
            str +=  "'" + i + "':'" + v + "'";
        }
    });
    return str+= '}';
}

আমি কেবল v0.2 edit। edit এ সম্পাদনা করব ^

 function obj2json(_data){
    str = (($.type(_data)== 'array')?'[ ': '{ ');
    first = true;
    $.each(_data, function(i, v) { 
        if(first != true)
            str += ",";
        else first = false;
        if ($.type(v)== 'object' )
            str += '"' + i + '":' + obj2json(v) ;
        else if ($.type(v)== 'array')
            str += '"' + i + '":' + obj2json(v) ;
        else{
            if($.type(_data)== 'array')
                str += '"' + v + '"';
            else
                str +=  '"' + i + '":"' + v + '"';
        }
    });
    return str+= (($.type(_data)== 'array')? ' ] ':' } ');;
}

3

একটি অ্যারের স্ট্রিং রিপ্রেজকুলেশন হয়ে উঠতে আমার একটি অ্যারের দরকার ছিল মানে আমার এটির দরকার ছিল

var a = ['a','b','c'];
//became a "real" array string-like to pass on query params so was easy to do:
JSON.stringify(a); //-->"['a','b','c']"

কারও দরকার আছে :)


2
var arr = new Array();

var blkstr = $.each([1, 2, 3], function(idx2,val2) {                    
    arr.push(idx2 + ":" + val2);
    return arr;
}).join(', ');

console.log(blkstr);

অথবা

var arr = new Array();

$.each([1, 2, 3], function(idx2,val2) {                    
    arr.push(idx2 + ":" + val2);

});

console.log(arr.join(', '));

2

নীচে হিসাবে একটি ইউআরএল যুক্ত করা যেতে পারে এমন একটি অ্যারেকে জিইটি প্যারাম স্ট্রিংয়ে রূপান্তর করুন

function encodeGet(array){
    return getParams = $.map(array , function(val,index) {                    
        var str = index + "=" + escape(val);
        return str;
   }).join("&");
}

এই ফাংশন হিসাবে কল

var getStr = encodeGet({
    search:     $('input[name="search"]').val(),
    location:   $('input[name="location"]').val(),
    dod:        $('input[name="dod"]').val(),
    type:       $('input[name="type"]').val()
});
window.location = '/site/search?'+getStr;

কোনটি ব্যবহারকারী / সাইট / সন্ধানে ফরোয়ার্ড করবে? এনকোডগেটকে দেওয়া অ্যারেটিতে রূপরেখা প্রাপ্ত প্যারামগুলির সাথে পৃষ্ঠা।


1
নোট করুন যে jQuery.param (অ্যারে) এনকোডগেট (অ্যারে) যা করে তা করে।
কার্টিস ইয়ালাপ

1

অ্যারে এর তালিকা সহ বিভ্রান্ত করা উচিত নয় ... এটি একটি তালিকা: {...} এবং এর কোনও দৈর্ঘ্য বা অ্যারের বৈশিষ্ট্য নেই।

এটি একটি অ্যারে: [...] এবং আপনি অ্যারে ফাংশন, পদ্ধতি এবং তাই ব্যবহার করতে পারেন যেমন কেউ এখানে পরামর্শ দিয়েছেন: someArray.toString ();

"SomeObj.toString ();" তালিকাগুলির মতো অন্য কোনও অবজেক্টের ধরণে কাজ করবে না। ;-)


0

Array.prototype.toString ()

টসস্ট্রিং () পদ্ধতিটি নির্দিষ্ট করা অ্যারে এবং এর উপাদানগুলি উপস্থাপন করে একটি স্ট্রিং প্রদান করে।

var months = ["Jan", "Feb", "Mar", "Apr"];
months.toString(); // "Jan,Feb,Mar,Apr"

বাক্য গঠন

arr.toString()

ফেরত মূল্য

অ্যারের উপাদানগুলির প্রতিনিধিত্বকারী একটি স্ট্রিং।

আরও তথ্যের জন্য :

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString


0

আন্ডারস্কোর ফাংশন ব্যবহার করে এখানে একটি উদাহরণ।

var exampleArray = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
var finalArray = _.compact(_.pluck(exampleArray,"name")).join(",");

চূড়ান্ত আউটপুট হবে "মো, লরি, কোঁকড়ানো"

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