Bir JavaScript dizisi bildirirken “Array ()” ve “[]” arasındaki fark nedir?


841

Bunun gibi bir dizi bildirme arasındaki gerçek fark nedir:

var myArray = new Array();

ve

var myArray = [];

[]belirteci ARRAY_INIT:; new Arraybelirteçleri NEW, IDENTIFIER:; new Array()belirteçleri:NEW, IDENTIFIER, CALL
noobninja

Yanıtlar:


951

Bir fark vardır, ancak bu örnekte hiçbir fark yoktur.

Daha ayrıntılı yöntemi kullanarak: new Array()parametrelerde bir ekstra seçenek vardır: yapıcıya bir sayı iletirseniz, bu uzunlukta bir dizi alırsınız:

x = new Array(5);
alert(x.length); // 5

Dizi oluşturmanın farklı yollarını göstermek için:

var a = [],            // these are the same
    b = new Array(),   // a and b are arrays with length 0

    c = ['foo', 'bar'],           // these are the same
    d = new Array('foo', 'bar'),  // c and d are arrays with 2 strings

    // these are different:
    e = [3]             // e.length == 1, e[0] == 3
    f = new Array(3),   // f.length == 3, f[0] == undefined

;

Başka bir fark, kullanırken new Array(), yığın boyutunu etkileyen dizinin boyutunu ayarlayabilmenizdir. Bu , dizinin boyutu yığının boyutunu aştığında gerçekleşen ve yeniden oluşturulması gereken yığın taşmaları ( Array.push'ın Performansı vs Array.unshift ) alıyorsanız faydalı olabilir . Bu nedenle, kullanım durumuna bağlı olarak new Array()taşma sırasında bir performans artışı olabilir, çünkü taşmanın olmasını önleyebilirsiniz.

İşaret edildiği gibi bu cevap , new Array(5)aslında beş eklemez undefineddiziye öğeler. Sadece beş öğe için yer ekler. ArrayBu şekilde kullanmanın array.lengthhesaplamalara güvenmeyi zorlaştırdığını unutmayın .


66
Bu biraz yanlış. Yeni Array () ve [] arasında çok önemli bir fark var.
coderjoe

30
Ama cevabınızda belirtildiği gibi, sadece tamamen deli iseniz ve Array fonksiyonunun üzerine yazıyorsanız farklıdır ..?
nickf

19
Önemli olan, yeni operatörün kullanılması, tercümanın küresel kapsama gitmek, kurucuyu aramak, kurucuyu aramak ve sonucu atamak için her türlü ekstra adımı atmasına neden olmasıdır. aa çalışma zamanı dizisi. Sadece [] kullanarak global kurucuya bakma yükünü önleyebilirsiniz. Küçük görünebilir, ancak uygulamanızda neredeyse gerçek zamanlı performans için çekim yaparken fark yaratabilir.
coderjoe

5
Büyük bir performans farkı var: jsperf.com/create-an-array-of-initial-size/2
Marco Luglio

4
Doğru, ancak onları eklediğim çoğu yerde noktalı virgüllere veya satır kesmelerine de ihtiyacınız yok. Tutarlılık ve okunabilirlik ile ilgili. Biliyorsun, IMHO.
nickf

774

Örtük diziyle bir dizi oluşturma ve dizi yapıcısı arasındaki fark, ince ancak önemlidir.

Kullanarak bir dizi oluşturduğunuzda

var a = [];

Yorumlayıcıya yeni bir çalışma zamanı dizisi oluşturmasını söylüyorsunuz. Hiçbir ekstra işleme gerek yoktur. Bitti.

Eğer kullanırsan:

var a = new Array();

Tercümana söylüyorsun, ben yapıcıyı çağırmak istiyorum "Array " demek ve bir nesne oluşturmak . Daha sonra çağrılacak kurucuyu bulmak için yürütme bağlamınızı arar ve dizinizi oluştururken onu çağırır.

"Peki, bu hiç önemli değil. Onlar aynı!" Diye düşünebilirsiniz. Maalesef bunu garanti edemezsiniz.

Aşağıdaki örneği alın:

function Array() {
    this.is = 'SPARTA';
}

var a = new Array();
var b = [];

alert(a.is);  // => 'SPARTA'
alert(b.is);  // => undefined
a.push('Woa'); // => TypeError: a.push is not a function
b.push('Woa'); // => 1 (OK)

Yukarıdaki örnekte, ilk çağrı beklediğiniz gibi 'SPARTA'yı uyaracaktır. İkincisi olmaz. Sonunda tanımsız görürsünüz. Ayrıca b'nin push, diğerinin olmadığı gibi yerel Array nesnesi işlevlerinin tamamını içerdiğini de unutmayın .

Bunun olmasını beklemenize rağmen, sadece []bununla aynı olmayan gerçeği gösterir new Array().

Sadece []bir dizi istediğinizi biliyorsanız sadece kullanmak en iyisidir . Ayrıca etrafta dolaşmayı ve Array'ı yeniden tanımlamayı önermiyorum ...


157
Sanýrým bilmek güzel. Ne tür bir kişi dizi sınıfının üzerine
yazacak,

160
Kesinlikle haklısın. Dizi sınıfının üzerine sadece bir deli yazar. Şimdi bir dakikanızı ayırın ve yeni Array () kullanarak tüm ekstra işleri düşünün, tercümanın bu delileri desteklemek için yapmasını sağlayın. Sadece [] ile birlikte bundan kaçınırım.
coderjoe

51
JavaScript ile mümkün olan küresel kirliliğe iyi bir örnek.
David Snabel-Caunt

8
Yeni Dizinin (boyut) [] gösterimini kullanarak diğer olası yöntemlerden daha hızlı olduğunu belirtmek gerekir. Kaynak: jsperf.com/create-an-array-of-initial-size/2
Marco Luglio

9
Ne yazık ki bu test yanlış hazırlanmış. Bir Dizinin başlatılmasını, dizilerin başlatılmasını ve ardından Dizi erişimini test ediyor. Tarayıcıların aslında belleği önceden ayırdığını kanıtlayan herhangi bir kontrol yoktur (şartname yapmaları gerektiğini söylemez). Dizi erişiminin sabit olduğunu varsayabilir ve zamanın çoğunu her iki örnekte de bellek ayırmak için harcanacaksa, milyonlarca diziyi somutlaştırıyorsanız [] tercih edilebilir. jsperf.com/array-instanciation
coderjoe

95

Henüz bir yanıttan bahsedilmeyen önemli bir fark var.

Bundan:

new Array(2).length           // 2
new Array(2)[0] === undefined // true
new Array(2)[1] === undefined // true

new Array(2)Eşdeğer olduğunu düşünebilirsiniz [undefined, undefined], ancak DEĞİL!

Şunu deneyelim map():

[undefined, undefined].map(e => 1)  // [1, 1]
new Array(2).map(e => 1)            // "(2) [undefined × 2]" in Chrome

Görmek? Anlambilim tamamen farklıdır! Öyleyse neden böyle?

ES6 Spec 22.1.1.2'ye göre, görevi Array(len)sadece özelliği lengthargüman olarak ayarlanmış yeni bir dizi oluşturmak lenve bu kadar, yani bu yeni oluşturulan dizi içinde gerçek bir öğe yok .

İşlev map(), spesifikasyon 22.1.3.15'e göre önce kontrol HasPropertyeder ve geri aramayı çağırır, ancak şu şekilde ortaya çıkar:

new Array(2).hasOwnProperty(0) // false
[undefined, undefined].hasOwnProperty(0) // true

Bu nedenle, oluşturulan dizilerde her zamanki gibi çalışan yineleme işlevlerini bekleyemezsiniznew Array(len) .

BTW, Safari ve Firefox'un bu duruma göre çok daha iyi bir "baskısı" var:

// Safari
new Array(2)             // [](2)
new Array(2).map(e => 1) // [](2) 
[undefined, undefined]   // [undefined, undefined] (2) 

// Firefox
new Array(2)             // Array [ <2 empty slots> ]
new Array(2).map(e => 1) // Array [ <2 empty slots> ]
[undefined, undefined]   // Array [ undefined, undefined ]

Zaten Chromium'a bir sorun gönderdim ve onlardan bu kafa karıştırıcı baskıyı düzeltmelerini istedim: https://bugs.chromium.org/p/chromium/issues/detail?id=732021

GÜNCELLEME: Zaten düzeltildi. Chrome artık şu şekilde yazdırıldı:

new Array(2)             // (2) [empty × 2]

22
Sevgiler tek gerçek cevaptır
Victor

Bu mantıklı, sadece belgelenmiş referanslar bulamıyorum farklı bir yapıya çarptı: sonuç açısından [...Array(2)]eşdeğerdir [undefined, undefined].
Roberto Andrade

Önceki yorumlarımın cevabı "Spread operatörü" gibi görünüyor: javascript.info/rest-parameters-spread-operator
Roberto Andrade

@RobertoAndrade, çünkü yayılma operatörü bu tür kopyaları uygulayabilmesi için girişleri okuması gerekir ... ve undefinedher zamanki gibi boş yuva dönüşünü okuyabilir .
Hux

51

İşin tuhafı, Chrome'dan new Array(size)neredeyse 2 kat daha hızlı []ve FF ve IE'de yaklaşık aynı (bir dizi oluşturup doldurarak ölçülen). Yalnızca dizinin yaklaşık boyutunu biliyorsanız önemlidir. Verdiğiniz uzunluktan daha fazla öğe eklerseniz, performans artışı kaybedilir.

Daha doğrusu: Array(bellek ayırmayan hızlı sabit bir zaman işlemidir, wheras []türü ve değeri ayarlayan doğrusal bir zaman işlemidir.


3
Node.js'de çok test ettim: diziye bir miktar öğe koymanız gerektiğinde new Array(length), 0 <= boyut <= ~ 1000, boyut> ~ 1000 kazanır[]
glukki


40

Daha fazla bilgi için, aşağıdaki sayfada neden asla kullanmanız gerekmediği açıklanmaktadırnew Array()

Asla new Object()JavaScript'te kullanmanız gerekmez . {} Bunun yerine değişmez nesneyi kullanın. Benzer şekilde, kullanmayın new Array(), [] bunun yerine değişmez diziyi kullanın. JavaScript'teki diziler, Java'daki diziler gibi bir işe yaramaz ve Java benzeri sözdiziminin kullanılması sizi şaşırtacaktır.

Kullanmayın new Number, new Stringya da new Boolean. Bu formlar gereksiz nesne paketleyicileri üretir. Bunun yerine basit değişmez değerleri kullanın.

Ayrıca yorumları kontrol edin - new Array(length)form herhangi bir yararlı amaca hizmet etmez (en azından bugünün JavaScript uygulamalarında).


3
Crockford da yeni Array () yerine [] kullandığını söylüyor. Ne yazık ki, bağlantılı makalede neden olduğunu söylemiyor. Bunun sadece bir uzay ve hız meselesi olduğunu düşünüyorum. javascript.crockford.com/code.html
Nosredna

4
Crockford, Javascript'te bir nesnenin yeni bir örneğini oluşturmak için "yeni" anahtar sözcüğünü kullanma hayranı değildir. Derslerde belirsizlik yarattığı ve Javascript'in prototip stil mirasına iyi uymadığı inancı olduğunu belirtti. Özellikle kullanıcı tarafından oluşturulan nesne oluşturuculara atıfta bulunuyor, ancak bu inanç göz önüne alındığında, alternatif bir sözdizimi olduğunda neden yerleşik öğelerle kullanmamanızı önerdiğini görmek kolaydır.
Alan Storm

@Alan Storm: en azından Number, String ve Boolean için "bu formlar gereksiz nesne paketleyicileri üretir" diyor, ancak sanırım bu Array için geçerli olmayacak.
BarelyFitz

10

Daha iyi anlamak için []ve new Array():

> []
  []
> new Array()
  []
> [] == []
  false
> [] === []
  false
> new Array() == new Array()
  false
> new Array() === new Array()
  false
> typeof ([])
  "object"
> typeof (new Array())
  "object"
> [] === new Array()
  false
> [] == new Array()
  false

Yukarıdaki sonuç, Windows 7'deki Google Chrome konsolundan alınmıştır.


4
ancak [] == [] veya [] === [] neden yanlış?
anu

5
"Nesneleri karşılaştıran bir ifade yalnızca işlenenler aynı Nesne'ye başvuruyorsa doğrudur." (kaynak: developer.mozilla.org/tr-TR/docs/Web/JavaScript/Reference/… )
srph

Bu cevap kiraz, iki yapının aynı olduğunu ima etmek için örnekler alır. Bu sayfadaki diğer yayınlar, Array(3)veya new Array(3)ile aynı olmayan farkları gösterir [3].
ggorlen

8

İlki varsayılan nesne yapıcı çağrısıdır. İsterseniz parametrelerini kullanabilirsiniz.

var array = new Array(5); //initialize with default length 5

İkincisi boş olmayan bir dizi oluşturma olanağı sağlar:

var array = [1, 2, 3]; // this array will contain numbers 1, 2, 3.

1
Aynı şeyi ayrıntılı yapıcı ile de yapabilirsiniz: var array = new Array (1, 2, 3);
nickf

O zaman sanırım var array = [5]köşeli parantez kullanarak yapabilir , ancak var array = Array(5)5 öğeden oluşan boş bir dizi olarak yapıcıyı kullanamazsınız .
cdmckay

cdmckay - bu yanlış. var a = [5], tek bir öğeye (beş numaralı) sahip bir dizi olur.
BarelyFitz

2
@BarelyFitz: Ben de öyle dedim. Bogdans'ın cevabında, yapıcı çağrısının bir diziyi canlandırmak için kullanılamayacağını, ancak yanlış olduğunu söylüyor. Benim yorumum sadece yapıcı çağrısını tek bir elemandan oluşan bir dizi başlatmak için kullanamayacağınızı açıklığa kavuşturmaktı.
cdmckay

1
@cdmckay: Üzgünüm, yorumunuzu yanlış anladım. Açıklığa kavuşturmak için: new Array (arg) - arg sayısalsa, length = arg ile boş bir dizi oluşturur; new Array (arg1, arg2) - yeni bir dizi oluşturur ve dizi öğelerini başlatır. Dolayısıyla, [5] gibi bir sayısal öğeye sahip bir dizi oluşturmak istiyorsanız, yeni Array (5) kullanarak bunu yapamazsınız. Ama gerçekten asla yeni Array () kullanmamalısınız, bu yüzden bu tartışmalı bir noktadır.
BarelyFitz

5

Fredrik'in iyi örneğine dayanan bu örnekle başlayarak daha spesifik bir şekilde açıklayabilirim.

var test1 = [];
test1.push("value");
test1.push("value2");

var test2 = new Array();
test2.push("value");
test2.push("value2");

alert(test1);
alert(test2);
alert(test1 == test2);
alert(test1.value == test2.value);

Sadece dizilere başka bir değer ekledim ve dört uyarı yaptım: Birinci ve ikinci değerler hakkında emin olmak için her dizide depolanan değeri vermektir. Aynı dönecekler! Şimdi üçüncü olanı deneyin, yanlış döndürür, çünkü

JS, test1'i bir veri türü dizisine sahip bir VARIABLE olarak ele alır ve test2'yi bir dizinin işlevselliğiyle bir NESNE olarak ele alır ve burada birkaç küçük fark vardır.

İlk fark test1 dediğimizde, bir değişkeni düşünmeden çağırır, sadece bu değişkente depolanan değerleri veri türünü dikkate almadan döndürür! Ancak, test2'yi çağırdığımızda Array () işlevini çağırır ve sonra "Push" değerlerimizi "Value" özelliğinde depolar ve test2'yi uyardığımızda da olur, "Value" değerini döndürür , dizi nesnesinin özelliğini .

Bu yüzden test1'in test2'ye eşit olup olmadığını kontrol ettiğimizde elbette asla doğruya dönmeyeceklerdir, biri bir işlevdir ve diğeri bir değişkendir (dizi türüyle), aynı değere sahip olsalar bile!

Bundan emin olmak için, .value eklendiğinde 4. uyarıyı deneyin; gerçek dönecektir. Bu durumda JS'ye "İşlevin ister değişken olsun, kabın türünü göz ardı ederek, lütfen her kapta depolanan değerleri karşılaştırın ve bize ne gördüğünüzü söyleyin!" tam da böyle oluyor.

Umarım arkasındaki fikri net bir şekilde söyledim ve kötü İngilizcem için üzgünüm.


19
Böyle tam ve mutlak saçmalıkların oylanması şaşırtıcı. Nesnelerin kimliğini karşılaştırdığı ve farklı nesneler olduğu için, bunları nasıl yaparsanız yapın, diziler arasındaki karşılaştırma yanlış olur. Dizilerin değer özelliği yoktur. []ve new Array()aynıdır; .valueher undefinediki durumda da olacak ve bunları karşılaştırmak her zaman yanlış olacaktır.
slikts

Anlaşıldı, bu cevap bir anlam ifade etmiyor ve hiçbir şey göstermiyor. Diye bir şey yoktur array.value. ve her ikisi de typeof []ve typeof new Array()geri object. Array.isArray
Gman

4

Diziyi herhangi bir uzunluk olmadan başlattığınızda hiçbir fark yoktur. Yani var a = []&var b = new Array() aynıdır.

Ancak diziyi uzunluğunda olduğu gibi başlatırsanız var b = new Array(1);, dizi nesnesinin uzunluğunu 1 olarak ayarlar. var b = []; b.length=1; .

Array_object.push yaptığınızda, son öğeden sonra öğe ekler ve uzunluğu artırır.

var b = new Array(1);
b.push("hello world");
console.log(b.length); // print 2

vs

var v = [];
a.push("hello world");
console.log(b.length); // print 1

3

Birincisi varsayılan nesne yapıcı çağrısıdır. Çoğunlukla dinamik değerler için kullanılır.

var array = new Array(length); //initialize with default length

statik diziler oluşturulurken ikinci dizi kullanılır

var array = [red, green, blue, yellow, white]; // this array will contain values.

3

Büyük bir fark yok, temelde aynı şeyi yapıyorlar ama farklı şekillerde yapıyorlar, ama okumaya devam edin, W3C'deki şu ifadeye bakın:

var cars = ["Saab", "Volvo","BMW"];

ve

var cars = new Array("Saab", "Volvo", "BMW");

Yukarıdaki iki örnek tamamen aynıdır. Yeni Array () kullanmaya gerek yoktur.
Basitlik, okunabilirlik ve yürütme hızı için ilkini kullanın (dizi değişmez yöntemi).

Ancak aynı zamanda, new Arraykötü uygulama olarak kabul edilen sözdizimini kullanarak yeni dizi oluşturmak :

Yeni Diziden Kaçının ()

JavaScript'in yerleşik dizi yapıcısı yeni Array () kullanmaya gerek yoktur.
Bunun yerine [] kullanın.
Bu iki farklı ifadenin her ikisi de points adlı yeni bir boş dizi oluşturur:

var points = new Array();         // Bad
var points = [];                  // Good 

Bu iki farklı ifadenin her ikisi de 6 sayı içeren yeni bir dizi oluşturur:

var points = new Array(40, 100, 1, 5, 25, 10); // Bad    
var points = [40, 100, 1, 5, 25, 10];          // Good

Yeni anahtar kelime sadece kod zorlaştırmaktadır. Ayrıca bazı beklenmedik sonuçlar da üretebilir:

var points = new Array(40, 100);  // Creates an array with two elements (40 and 100)

Öğelerden birini kaldırırsam ne olur?

var points = new Array(40);       // Creates an array with 40 undefined elements !!!!!

Yani temelde en iyi uygulama olarak kabul edilmez, ayrıca orada küçük bir fark vardır new Array(length), bunun gibi bir uzunluk geçirebilirsiniz , bu da önerilen bir yol değildir.


Merhaba Alireza, bunlar bir yerden kopyalanıyor ve yapıştırılıyor mu? Lütfen metnin kopyalandığı sayfaya bir bağlantı ekleyin. Ayrıntılar için bu yardım merkezi sayfasına bakın. Teşekkür ederim.
Pang

Faydalınew Array(40).fill(123)
gman

2

Kullanma farkı

var arr = new Array(size);

Veya

arr = [];
arr.length = size;

Bu soruda yeterince tartışıldığı gibi.

Hız sorununu eklemek istiyorum - şu anki en hızlı yol, google chromeikincisidir.

Ancak dikkat edin, bunlar güncellemelerle çok değişme eğilimindedir. Ayrıca çalışma süresi farklı tarayıcılar arasında farklılık gösterir.

Örneğin - bahsettiğim 2. seçenek, 2 milyon [ops / saniye] üzerinde çalışıyor chrome, ancak denersenizmozilla dev. şaşırtıcı derecede daha yüksek bir 23 milyon oranı elde edersiniz.

Her neyse, siteyi bu şekilde kullanarak farklı tarayıcılarda (ve makinelerde) ara sıra kontrol etmenizi öneririm.


2

Ben diference bildiği gibi u gibi dilim (veya Array diğer üstlendiği fonksiyonları) bulabilirsiniz code1 .ve code2 u göstermek Diziyi ve onun örneklerini :

code1:

[].slice; // find slice here
var arr = new Array();
arr.slice // find slice here
Array.prototype.slice // find slice here

code2:

[].__proto__ == Array.prototype; // true
var arr = new Array();
arr.__proto__ == Array.prototype; // true

Sonuç:

u yeni bir Array örneği görebilir []ve new Array()oluşturabilir ve hepsi de prototip işlevleriniArray.prototype

Onlar sadece Array'ın farklı bir örneğidir. [] != []

:)


2

[] Kullanarak garip bir davranışla karşılaştım.

Model "sınıfları" var ve alanları belirli bir değere başlattık. Örneğin:

require([
  "dojo/_base/declare",
  "dijit/_WidgetBase",
], function(declare, parser, ready, _WidgetBase){

   declare("MyWidget", [_WidgetBase], {
     field1: [],
     field2: "",
     function1: function(),
     function2: function()
   });    
});

Alanlar ile başlatıldığında []tüm Model nesneleri tarafından paylaşılacağını buldum . Birinde değişiklik yapmak diğerlerini etkiler.

Bu onları başlatmakla olmaz new Array(). Nesnelerin başlatılması için de aynı ( {}yeni vs Object())

TBH Kullanmakta olduğumuz çerçeveyle ilgili bir sorun olup olmadığından emin değilim ( Dojo )


2

Bunun gözle görülenden daha fazlası var. Diğer cevapların çoğu doğrudur AMA ..

new Array(n)

  • Motorun nelemanlar için yer ayırmasına izin verir
  • Dizi oluşturma için optimize edildi
  • Oluşturulan dizi, en az performans gösteren dizi işlemlerine sahip seyrek olarak işaretlenir , çünkü her dizin erişiminin sınırları kontrol etmesi, değerin var olup olmadığını ve etmesi ve prototip zincirinde yürümesi gerekir
  • Dizi seyrek olarak işaretlenmişse, geri dönüş yolu yoktur (en azından V8'de), 1ms veya 2 saat sonra içerikle doldurulmuş olsanız bile, ömrü boyunca her zaman daha yavaş olacaktır.

[1, 2, 3] || []

  • Oluşturulan dizi paketlenmiş olarak işaretlenir (siz deleteveya [1,,3]sözdizimi kullanmadığınız sürece )
  • Dizi için optimize edilmiş işlemler ( for .., forEach,map , vs.)
  • Dizi büyüdükçe motorun alanı yeniden tahsis etmesi gerekir

Bu muhtemelen eski tarayıcı sürümleri / tarayıcıları için geçerli değildir.


-2

Beni biraz zorlayan iki yapı arasında bir fark buldum.

Diyelim ki:

function MyClass(){
  this.property1=[];
  this.property2=new Array();
};
var MyObject1=new MyClass();
var MyObject2=new MyClass();

Gerçek hayatta, eğer bunu yaparsam:

MyObject1.property1.push('a');
MyObject1.property2.push('b');
MyObject2.property1.push('c');
MyObject2.property2.push('d');

Ne ile bitirmek budur:

MyObject1.property1=['a','c']
MyObject1.property2=['b']
MyObject2.property1=['a','c']
MyObject2.property2=['d']

Dil belirtiminin ne olacağını bilmiyorum, ancak iki nesnemin nesnelerimde benzersiz özellik dizileri olmasını istiyorsanız, kullanmalıyım new Array().


Bu JSFiddle , çıktının dizi değişmezi []ve new Array()yapıcı ile beklediğiniz şey olduğunu ve sonuçta özellik başına dizi başına bir öğe olduğunu gösterir. Yukarıda gösterdiğiniz sonuca ulaşmak için kodunuzda başka bir şeyin olması gerekir.
gfullam

Bucky, bu benim için olmaz, hiçbir tarayıcıda. Bu davranışı elde etmek için şöyle bir şey yapmanız gerekir: var property1static=[]; function MyClass(){ this.property1=property1static; this.property2=new Array(); };
Dave Burton

-3

Array yapıcısını kullanarak istenen uzunlukta yeni bir dizi oluşturur ve her bir dizini tanımsız ile doldurur, bir değişkene bir dizi atanması, kendisine bilgi verdiğiniz dizinleri oluşturur.


1
Hayır, dizi DÜZENLENMEDİ, içinde dizin / anahtar yok. Örneğin. ForEach işe yaramaz.
CFrei
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.