জাভাস্ক্রিপ্ট একটি প্রদত্ত আকারের ফাঁকা অ্যারে তৈরি করে


94

জাভাস্ক্রিপ্টে আমি কীভাবে একটি নির্দিষ্ট আকারের একটি খালি অ্যারে তৈরি করব

স্যুয়েডো কোড:

X = 3;
createarray(myarray, X, "");

আউটপুট:

   myarray = ["","",""]

4
আপনি সম্ভবত অ্যারে.প্রোটোটাইপ.ফিল ব্যবহার করবেন
রবজি


সম্পর্কিত পোস্ট এখানে
আরবিটি

উত্তর:


67
var arr = new Array(5);
console.log(arr.length) // 5

14
ওপি জিজ্ঞাসা করলেন in javascript how would I create an empty array of a given size। এটি এই সমস্যার সমাধান করে।
মেরিওচাচ

12
ওপি "খালি" উদাহরণ সরবরাহ করেছে।
রবজি

6
ঠিক আছে এই প্রশ্নের অন্য বিকল্প। তারা প্রদত্ত যে কোনও উত্তর চয়ন করতে পারে, এটি
স্ট্যাকওভারফ্লো

235

1) নতুন অ্যারে তৈরি করতে যা আপনি পুনরাবৃত্তি করতে পারবেন না , আপনি অ্যারে কনস্ট্রাক্টর ব্যবহার করতে পারেন:

Array(100) বা new Array(100)


2) আপনি নতুন অ্যারে তৈরি করতে পারেন যা নীচের মত পুনরাবৃত্তি হতে পারে :

ক) সমস্ত জাভাস্ক্রিপ্ট সংস্করণ

  • অ্যারে.অ্যাপ্লি: Array.apply(null, Array(100))

খ) ES6 জাভাস্ক্রিপ্ট সংস্করণ থেকে

  • অপারেটর অপারেটর: [...Array(100)]
  • অ্যারে.প্রোটোটাইপ.ফিল Array(100).fill(undefined)
  • অ্যারে.ফর্ম Array.from({ length: 100 })

আপনি নীচের মত এই অ্যারে নেভিগেশন মানচিত্র করতে পারেন।

  • Array(4).fill(null).map((u, i) => i) [0, 1, 2, 3]

  • [...Array(4)].map((u, i) => i) [0, 1, 2, 3]

  • Array.apply(null, Array(4)).map((u, i) => i) [0, 1, 2, 3]

  • Array.from({ length: 4 }).map((u, i) => i) [0, 1, 2, 3]


4
অ্যারে.প্রোটোটাইপ.ফিল (> ​​= ES6) kangax.github.io/compat-table/es6/… ;
পিটিএম

4
দিনের আলোকায়ন - আপনি যখন অংশ (এ) এ উল্লেখ করবেন যে কনস্ট্রাক্টর সিনট্যাক্স ব্যবহার করে একটি সদ্য নির্মিত অ্যারে এমনকি পুনরাবৃত্তিযোগ্য নয়। জাভাস্ক্রিপ্ট সময়ে সত্যিই বিস্মিত।
আরবিটি

এর আকার কি Array(10000)সঙ্গে empty x 10000?
কিওয়ার্টি

4
এর দৈর্ঘ্য 10000, আপনি এটি পরীক্ষা করে দেখতে পারেন console.log(Array(10000).length)তবে আপনি চালনা করলে আপনি Array(10000).forEach((u, i) => console.log(i))কোনও আউটপুট পাবেন না
stpoa

Array.apply('x', Array(10))আসলে[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
পোলভ

44

আমরা Array.from({length: 500})2017 সাল থেকে ব্যবহার করি ।


@ জিওন_13: আমি দেখছি এটির ভোট হয়েছে এবং আমার ভোট পড়েছে। কারণ?
7vujy0f0hy

@ 7vujy0f0 কেন আপনি ভোট কেন নামলেন তা আমি জানি না। আমি আপনাকে একটি ভোট দিয়েছি, যদিও আপনার সমাধানটি এর চেয়ে কিছুটা স্বজ্ঞাত।
gion_13

@ gion_13: আমার সমাধানে কোনও ভুল নেই তা নিশ্চিত করার জন্য ধন্যবাদ ☺
7vujy0f0hy

17

whileলুপ ব্যবহার করে দেখুন ,Array.prototype.push()

var myArray = [], X = 3;
while (myArray.length < X) {
  myArray.push("")
}

বিকল্পভাবে, ব্যবহার Array.prototype.fill()

var myArray = Array(3).fill("");

.fill()একটি মার্জিত ও লাইন সমাধান। ধন্যবাদ!
কোলেফনার 17'19

15

2018 এবং এর পরে আমরা [...Array(500)]সেই লক্ষ্যে ব্যবহার করব ।


4
ভবিষ্যতে মধ্যে!
লেভি

হাসিখুশিভাবে এটি (এবং অনুরূপ) কেবলমাত্র তুলনায় 50% ধীর (() => { let n = []; for(var i=0;i<500;i++){y.push("");} return n; })()
অ্যালেক্স

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

10

ES5 হিসাবে (যখন এই উত্তর দেওয়া হয়েছিল):

আপনি যদি undefinedউপাদানগুলির একটি খালি অ্যারে চান , আপনি কেবল এটি করতে পারেন

var whatever = new Array(5);

এই আপনাকে দিতে হবে

[undefined, undefined, undefined, undefined, undefined]

এবং তারপরে আপনি যদি এটি খালি স্ট্রিং দিয়ে পূর্ণ করতে চান তবে আপনি করতে পারেন

whatever.fill('');

যা তোমাকে দেবে

["", "", "", "", ""]

এবং যদি আপনি এটি এক লাইনে করতে চান:

var whatever = Array(5).fill('');

4
নতুন অ্যারে (2) আপনাকে [অপরিবর্তিত, অপরিজ্ঞাত] দেয় না। এটি আপনাকে এমন একটি অ্যারে দেয় যা পুনরাবৃত্তিযোগ্য নয়।
জেসিএফ

ঠিক আছে. এখানে আরও কিছু চলছে যা আমি বুঝতে পারি না। আমি একটি নতুন অ্যারে তৈরি করছি new Array(2)এবং আমি যা ফিরে পাই তা [ <2 empty items> ]নয় [undefined, undefined]। ব্যবহার .mapসাবেক উপর কোনো প্রভাব নেই। তবে আমি for...ofলুপ ব্যবহার করে এটির উপরে পুনরাবৃত্তি করতে পারি । আমি যদি আক্ষরিক স্বরলিপি ব্যবহার করে একটি নতুন অ্যারে তৈরি করি a = [undefined, undefined]তবে আমি .mapএটিতে ব্যবহার করতে পারি।
JCF

4
@ জেসিএফ ... এর জন্য পুনরাবৃত্ত প্রোটোকল ব্যবহার করে, তাই এটি forEach / মানচিত্রের চেয়ে আলাদা আচরণ করে।
Iteters

@ টমাসব্যাচুট @ জিসিএফ নিম্ন ভোটারদের জন্য, দয়া করে মনে রাখবেন যে এই উত্তরটি 4 বছর আগে দেওয়া হয়েছিল - যে সময়ে, এই উত্তরটি 100% বৈধ ছিল। ES6 এবং ES7 যথাক্রমে 2016-এর মধ্য এবং 2018-এর মধ্যভাগ পর্যন্ত ব্রাউজারগুলিতে রোল আউট শুরু হয়নি। এই উত্তরের সময়, জেএস সংস্করণটি ES5 হত। আপনি আরও প্রমাণ এই প্রয়োজন হয় উপায় ES5 কাজ করেন, কেবল Chrome- এর একটি পুরোনো উদাহরণস্বরূপ আপ ঘুর্ণন - এবং রান - এই উত্তর সময়ে, এটা v48 হতো Array(5)। আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন: [undefined x 5]
jeffdill2

@ জেফডিল 2 উত্তরে নিজেই নতুন তথ্য যুক্ত করা ভাল। মন্তব্যগুলি সর্বদা পুরোপুরি পড়ে না।
বোয়াজ

4

আপনি যদি কিছু মান সহ বেনামে অ্যারে তৈরি করতে চান তবে আপনি এই বাক্য গঠনটি ব্যবহার করতে পারেন।

var arr = new Array(50).fill().map((d,i)=>++i)
console.log(arr)


0

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

" ".repeat(10).split(" ")

এই কোডটি এমন একটি অ্যারে তৈরি করবে যার মধ্যে 10 আইটেম রয়েছে এবং প্রতিটি আইটেম খালি স্ট্রিং।

const items = " ".repeat(10).split(" ")

document.getElementById("context").innerHTML = items.map((item, index) => index)

console.log("items: ", items)
<pre id="context">

</pre>

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