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


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.