কমা দ্বারা পৃথক তালিকাতে জাভাস্ক্রিপ্ট অ্যারে চালু করার সহজ উপায়?

আমি জাভাস্ক্রিপ্ট মধ্যে স্ট্রিং একটি দ্বিমাত্রিক অ্যারে আছে যে আমি একটি কমা দ্বারা পৃথক তালিকা মধ্যে চালু করতে চাই। বাগানের বিভিন্ন ধরণের জাভাস্ক্রিপ্ট (বা jQuery) এ কি একটি কমা দ্বারা পৃথক তালিকাতে চালু করার একটি সহজ উপায় আছে? (আমি জানি কিভাবে অ্যারের মাধ্যমে পুনরাবৃত্ত করা এবং স্ট্রিং নিজেকে কনট্যাক্টেনেশন দ্বারা নির্মাণ করে যদি এটি একমাত্র উপায়।)

319
toString() : যদি আপনি সহজতর উপায় খুঁজছেন তবে এটি toString() ব্যবহার করতে ভালো: var arr = ["জিরো", "এক" , "দুই"]; console.log (arr.toString ()); যা ফেরৎ জিরো, এক, দুই আরও পড়ুন
যোগ লেখক Mohammad lm71, উৎস

14 উত্তর

Array.prototype.join() পদ্ধতি :

<div class="snippet" data-lang="js" data-hide="false" data-console="false" data-babel="false"> <div class="snippet-code">

var arr = ["Zero", "One", "Two"];

document.write(arr.join(", "));
</div> </div>
603
যোগ
@ ডেভউইলিয়ামস 459: কিন্তু আপনি ওপি নন? Op "স্ট্রিং একটি এক মাত্রিক অ্যারে" বলেন। স্ট্রিংস। আইডি না যে তারা কিছু হতে পারে বোঝা যায়। যার মানে তারা অন্য কমা থাকতে পারে।
যোগ লেখক mpen, উৎস
@bostIT যতদিন আপনি নির্দিষ্ট হবেন না, এটি কখনোই উপস্থিত হবে না, হ্যাঁ, এটি একটি সহজ সমাধান। আমি মনে করি এটি অন্তত উত্তর দেওয়া উচিত উত্তর সব হয়।
যোগ লেখক mpen, উৎস
@ ক্রিস: আমি মনে করি না যে আমি অন্য একটি সমাধানে ত্রুটিগুলি তুলে ধরার জন্য একটি বিকল্প প্রদান করতে বাধ্য। তবুও, আমার আছে
যোগ লেখক mpen, উৎস
@ ওয়াইন: আমি এখনও মনে করি একটি সতর্কতা অবলম্বন করা হয় :) মানুষ সবসময় এই জিনিসগুলি মনে করে না, এবং তারপর তারা পরে ফুটে নিজেদের অঙ্কুর করে
যোগ লেখক mpen, উৎস
@ মার্ক, আপনি সবসময় এমন কিছু দিয়ে স্ট্রিংকে সীমাবদ্ধ করতে পারেন যা সম্ভবত তাদের ডেটাতে প্রদর্শিত হবে না, যেমন ";;;;"
যোগ লেখক devinbost, উৎস
@ মার্ক - আপনার মন্তব্যটি পুরোপুরি বৈধ (অন্যরা আপত্ত্বেও উল্লেখ করেছেন) কিন্তু আসলে আরও বেশি সহায়ক উদাহরণটি উদাহরণ হিসেবে বিকল্প উত্তর প্রদান করতে পারে?
যোগ লেখক Chris, উৎস
@ মার্ক: প্রশ্নটি জিজ্ঞাসা করা হলে উত্তরটি সঠিক। অন্য যে কোনও প্রয়োজনীয়তাগুলি নিজের জন্য কাজ করার জন্য পৃথক ব্যক্তির কাছে অবশিষ্ট থাকে। ওপি একটি কমা দ্বারা পৃথক তালিকা জন্য জিজ্ঞাসা, একটি উদ্ধৃত CSV- টাইপ ফর্ম্যাট না।
যোগ লেখক Wayne, উৎস
@ মার্ক: সত্যই যথেষ্ট কিন্তু আইডিগুলির তালিকা যুক্ত করতে হবে, কমা বা অন্যান্য বিশেষ অক্ষরগুলির কোন সম্ভাবনা নেই
যোগ লেখক davewilliams459, উৎস

প্রকৃতপক্ষে, toString() বাস্তবায়ন ডিফল্টভাবে কমাতে যোগদান করে:

var arr = [ 42, 55 ];
var str1 = arr.toString();//Gives you "42,55"
var str2 = String(arr);//Ditto

আমি জানি না যদি এটি জেড স্পিক দ্বারা বাধ্যতামূলক হয় তবে এটি কি বেশিরভাগ বেশিরভাগ ব্রাউজারেই করা হচ্ছে বলে মনে হচ্ছে।

80
যোগ
এছাড়াও ছোট (কিন্তু কম স্পষ্ট) arr + '' আছে
যোগ লেখক Oriol, উৎস
toString() এবং যোগদান (",") এর কর্মক্ষমতা এপ্রিল ২018 এর প্রায় সমতুল্য
যোগ লেখক MattMcKnight, উৎস
অ্যারে যোগদান দ্রুততর হয় jsperf.com/tostring-join
যোগ লেখক Sameer, উৎস
array.toString কোমা ছাড়া স্থান ছাড়া কাজ করে। অ্যারে সঙ্গে। আপনি নমনীয় হয়।
যোগ লেখক jMike, উৎস

অথবা (আরো দক্ষতার সাথে):

var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";

document.write(arr);//same as document.write(arr.toString()) in this context

একটি অ্যারের toString পদ্ধতি যখন আপনি প্রয়োজন ঠিক উল্টানো যখন - কমা দ্বারা পৃথক তালিকা।

28
যোগ
অধিকাংশ ক্ষেত্রে, স্ট্রিং আসলে অ্যারের যোগদান তুলনায় ধীর। এখানে দেখুন: jsperf.com/tostring-join
যোগ লেখক Sameer, উৎস

এখানে একটি বাস্তবায়ন যা একটি দ্বি-মাত্রিক অ্যারে বা কলামের একটি অ্যারেটি সঠিকভাবে পালিয়ে যাওয়া CSV স্ট্রিংকে রূপান্তর করে। ফাংশন বৈধ স্ট্রিং/নম্বর ইনপুট বা কলামের সংখ্যা পরীক্ষা করে না (নিশ্চিত করুন আপনার অ্যারেটি শুরু করার জন্য বৈধ)। কোষগুলি কমা এবং উদ্ধৃতি ধারণ করতে পারে!

এখানে একটি কোডিং সিএসভি স্ট্রিংগুলির জন্য স্ক্রিপ্ট

এখানে আমার CSV স্ট্রিং এনকোডিং জন্য স্ক্রিপ্ট :

// Example
var csv = new csvWriter();
csv.del = '\t';
csv.enc = "'";

var nullVar;
var testStr = "The comma (,) pipe (|) single quote (') double quote (\") and tab (\t) are commonly used to tabulate data in plain-text formats.";
var testArr = [
    false,
    0,
    nullVar,
   //undefinedVar,
    '',
    {key:'value'},
];

console.log(csv.escapeCol(testStr));
console.log(csv.arrayToRow(testArr));
console.log(csv.arrayToCSV([testArr, testArr, testArr]));

/**
 * Class for creating csv strings
 * Handles multiple data types
 * Objects are cast to Strings
 **/

function csvWriter(del, enc) {
    this.del = del || ',';//CSV Delimiter
    this.enc = enc || '"';//CSV Enclosure

   //Convert Object to CSV column
    this.escapeCol = function (col) {
        if(isNaN(col)) {
           //is not boolean or numeric
            if (!col) {
               //is null or undefined
                col = '';
            } else {
               //is string or object
                col = String(col);
                if (col.length > 0) {
                   //use regex to test for del, enc, \r or \n
                   //if(new RegExp( '[' + this.del + this.enc + '\r\n]' ).test(col)) {

                   //escape inline enclosure
                    col = col.split( this.enc ).join( this.enc + this.enc );

                   //wrap with enclosure
                    col = this.enc + col + this.enc;
                }
            }
        }
        return col;
    };

   //Convert an Array of columns into an escaped CSV row
    this.arrayToRow = function (arr) {
        var arr2 = arr.slice(0);

        var i, ii = arr2.length;
        for(i = 0; i < ii; i++) {
            arr2[i] = this.escapeCol(arr2[i]);
        }
        return arr2.join(this.del);
    };

   //Convert a two-dimensional Array into an escaped multi-row CSV 
    this.arrayToCSV = function (arr) {
        var arr2 = arr.slice(0);

        var i, ii = arr2.length;
        for(i = 0; i < ii; i++) {
            arr2[i] = this.arrayToRow(arr2[i]);
        }
        return arr2.join("\r\n");
    };
}
13
যোগ

আমি মনে করি এটা করা উচিত:

var arr = ['contains,comma', 3.14, 'contains"quote', "more'quotes"]
var item, i;
var line = [];

for (i = 0; i < arr.length; ++i) {
    item = arr[i];
    if (item.indexOf && (item.indexOf(',') !== -1 || item.indexOf('"') !== -1)) {
        item = '"' + item.replace(/"/g, '""') + '"';
    }
    line.push(item);
}

document.getElementById('out').innerHTML = line.join(',');

বেল্ড

মূলত সব এটি পরীক্ষা করা হয় যদি স্ট্রিং একটি কমা বা উদ্ধৃতি রয়েছে। যদি এটি করে তবে, এটি সকল উদ্ধৃতিগুলি দ্বিগুণ করে এবং শেষগুলির উদ্ধৃতিগুলি উদ্ধৃত করে। তারপর এটি একটি কমা সঙ্গে অংশ প্রতিটি যোগদান।

10
যোগ
@ জোশুয়ার বার্নস উইকিপিডিয়া বলছে দ্বিতীয় উদ্ধৃতি দিয়ে ডবল কোটগুলি পালিয়ে যেতে হবে, তবে সেখানে কোন প্রথাগত মান যদি আপনার CSV পাঠককে কিছু ভিন্ন প্রয়োজন হয়, তবে সংশোধন করতে এবং/অথবা ডাউনভোট মুক্ত করুন;)
যোগ লেখক mpen, উৎস
Noooooooooo! ডাউনওয়াট যাও tempted যদি কোটগুলি ব্যাকস্ল্যাশ দিয়ে পালিয়ে যেতে হয় তবে কি হবে ?! তারা পরিবর্তনশীল হতে হবে ;)
যোগ লেখক Joshua Burns, উৎস
প্রকৃতপক্ষে একটি RFC আছে, tools.ietf.org/rfc/rfc4180.txt , এবং যে সঠিক ডবল উদ্ধৃতিগুলি উদ্ধৃত করা উচিত ডবল উদ্ধৃতি দিয়ে।
যোগ লেখক Steve Buzonas, উৎস
@ স্টেবিউজানাস, আপনি আপনার রাফিকের সাথে সেই লোকটিকে শুধু চিত্কার করেছেন।
যোগ লেখক devinbost, উৎস

অন্তর্নির্মিত <�কোড> অ্যারে.টাস্ট্রিন পদ্ধতিটি ব্যবহার করুন

var arr = ['one', 'two', 'three'];
arr.toString(); //'one,two,three'

MDN on Array.toString()

6
যোগ

আমি সাধারণত নিজেকে এমন কিছু খুঁজে বের করতে পারি যা মূল্যকেও বাদ দেয় যদি সেই মান null বা অনির্দিষ্ট </কোড>, ইত্যাদি।

তাই এখানে সমাধান যে আমার জন্য কাজ করে:

// Example 1
const arr1 = ['apple', null, 'banana', '', undefined, 'pear'];
const commaSeparated1 = arr1.filter(item => item).join(', ');
console.log(commaSeparated1);//'apple, banana, pear'

// Example 2
const arr2 = [null, 'apple'];
const commaSeparated2 = arr2.filter(item => item).join(', ');
console.log(commaSeparated2);//'apple'

এখানে বেশিরভাগ সমাধান ', আপেল' ফিরে আসবে যদি আমার অ্যারে আমার দ্বিতীয় উদাহরণে একের মতো দেখতে পারে। এজন্য আমি এই সমাধানটি পছন্দ করি।

3
যোগ

যদি আপনি "এবং" পরিবর্তে "," ব্যবহার করতে চান তবে শেষ দুটি আইটেমের মধ্যে এটি করতে পারেন:

function arrayToList(array){
  return array
    .join(", ")
    .replace(/, ((?:.(?!, ))+)$/, ' and $1');
}
3
যোগ

কমা দ্বারা পৃথক তালিকাতে একটি অ্যারে রূপান্তর করার জন্য অনেকগুলি পদ্ধতি আছে

1. অ্যারের ব্যবহার # যোগ দিন

From MDN

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

কোড

var arr = ["this","is","a","comma","separated","list"];
arr = arr.join(",");

টুকিটাকি

<div class="টুকিটাকি" data-lang="js" data-hide="true" data-console="true" data-babel="false"> <div class="টুকিটাকি-code টুকিটাকি-currently-hidden">

var arr = ["this", "is", "a", "comma", "separated", "list"];
arr = arr.join(",");
console.log(arr);
</div> </div>

2. অ্যারের ব্যবহার # toString

From MDN

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

কোড

var arr = ["this","is","a","comma","separated","list"];
arr = arr.toString();

টুকিটাকি

<div class="টুকিটাকি" data-lang="js" data-hide="true" data-console="true" data-babel="false"> <div class="টুকিটাকি-code টুকিটাকি-currently-hidden">

var arr = ["this", "is", "a", "comma", "separated", "list"];
arr = arr.toString();
console.log(arr);
</div> </div>

3. একটি অ্যারের পরে [] + অ্যারে আগে বা []

[] + বা + [] এটি একটি স্ট্রিং রূপে রূপান্তর করবে

প্রমাণ

([]+[] === [].toString())

will output true

<div class="টুকিটাকি" data-lang="js" data-hide="true" data-console="true" data-babel="false"> <div class="টুকিটাকি-code টুকিটাকি-currently-hidden">

console.log([]+[] === [].toString());
</div> </div>
var arr = ["this","is","a","comma","separated","list"];
arr = []+arr;

টুকিটাকি

<div class="টুকিটাকি" data-lang="js" data-hide="true" data-console="true" data-babel="false"> <div class="টুকিটাকি-code টুকিটাকি-currently-hidden">

var arr = ["this", "is", "a", "comma", "separated", "list"];
arr = []+arr;
console.log(arr);
</div> </div>

এছাড়াও

var arr = ["this","is","a","comma","separated","list"];
arr = arr+[];

<div class="টুকিটাকি" data-lang="js" data-hide="true" data-console="true" data-babel="false"> <div class="টুকিটাকি-code টুকিটাকি-currently-hidden">

var arr = ["this", "is", "a", "comma", "separated", "list"];
arr = arr + [];
console.log(arr);
</div> </div>
2
যোগ
var array = ["Zero", "One", "Two"];
var s = array + [];
console.log(s);//=> Zero,One,Two
1
যোগ
যদিও এই কোড স্নিপেটটি প্রশ্নটি সমাধান করতে পারে, একটি ব্যাখ্যা সহ সত্যিই মান উন্নত করতে সহায়তা করে আপনার পোস্টের মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, এবং সেইসব লোকেরা হয়তো আপনার কোড পরামর্শের কারণ জানত না। অনুগ্রহপূর্বক মন্তব্যগুলির সাথে আপনার কোডটিকে ভিড়তে নাও, এটি কোড এবং ব্যাখ্যাগুলির উভয়টি প্রকাশযোগ্যতা হ্রাস করে!
যোগ লেখক kayess, উৎস

প্রাথমিক কোড গ্রহণ:

var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";

যোগদান ফাংশন ব্যবহার করে প্রাথমিক উত্তর আদর্শ। বিবেচনা একটি জিনিস স্ট্রিং চূড়ান্ত ব্যবহার করা হবে।

কিছু শেষে পাঠ্যপুস্তক প্রদর্শনের জন্য:

arr.join(",")
=> "Zero,One,Two"

একটি (কিছুটা) রেসপ্যুল পদ্ধতিতে মাধ্যমে একাধিক মান ক্ষণস্থায়ী জন্য একটি URL ব্যবহার করার জন্য:

arr.join("|")
=> "Zero|One|Two"

var url = 'http://www.yoursitehere.com/do/something/to/' + arr.join("|");
=> "http://www.yoursitehere.com/do/something/to/Zero|One|Two"

অবশ্যই, এটি সব চূড়ান্ত ব্যবহারের উপর নির্ভর করে। শুধু তথ্য উৎস রাখুন এবং মন ব্যবহার করুন এবং সমস্ত বিশ্বের সাথে অধিকার হবে।

1
যোগ

আপনি এটি একটি "এবং" সঙ্গে শেষ করতে চান?

এই পরিস্থিতিতে, আমি একটি npm মডিউল তৈরি।

অ্যারফোর্ড চেষ্টা করে দেখুন:


ব্যবহার

const arrford = require('arrford');

arrford(['run', 'climb', 'jump!']);
//=> 'run, climb, and jump!'

arrford(['run', 'climb', 'jump!'], false);
//=> 'run, climb and jump!'

arrford(['run', 'climb!']);
//=> 'run and climb!'

arrford(['run!']);
//=> 'run!'


ইনস্টল করুন

npm ইনস্টল করুন --save arrford


আরও পড়ুন

https://github.com/dawsonbotsford/arrford


এটি নিজে চেষ্টা করো

টনিক লিঙ্ক

1
যোগ
var arr = ["Pro1", "Pro2", "Pro3"];
console.log(arr.join());// Pro1,Pro2,Pro3
console.log(arr.join(', '));// Pro1, Pro2, Pro3
0
যোগ

Papa Parse (browser based) handles commas in values and other edge cases. Use Baby Parse for Node.

যেমন। (নোড)

const csvParser = require('babyparse');
var arr = [1,null,"a,b"] ;
var csv = csvParser.unparse([arr]) ;
console.log(csv) ;

1 , "A, B"

0
যোগ