纹绣是什么| 有点咳嗽吃什么药| 一步之遥是什么意思| 宝宝肋骨外翻是什么原因| 沉香对人体有什么好处| 宫寒是什么原因引起的如何调理| 北五行属什么| 香膏是什么| 高脂血症是什么意思| 为什么医生都不体检| 高血压饮食上注意什么| 小肚子是什么部位| 易经和周易有什么区别| 5月9号是什么星座| camel什么意思| 类风湿什么症状| 小孩腿抽筋是什么原因引起的| 夜来非是什么意思| 收口是什么意思| 贻笑大方什么意思| 什么原因造成耳鸣| 电压不稳定是什么原因| 脚气是什么原因引起的| fsa是什么意思| 耳朵里长痘是什么原因| 心如止水是什么意思| 梦见血是什么预兆解梦| 恭请是什么意思| 戒指上的s925是什么意思| 类风湿因子高说明什么| 梦见手机丢了又找到了是什么意思| 太阳花是什么花| 什么是更年期| 沉鱼落雁闭月羞花什么意思| 最近天气为什么这么热| 为什么做爱那么舒服| 湿热内蕴证有什么症状| 平动是什么意思| 举什么什么举| 出血热是什么病| 弟弟的儿子叫什么| 肠粘连吃什么药| 慢性阑尾炎挂什么科| 身体抱恙是什么意思| 玄孙是什么意思| 火烈鸟为什么是红色的| 倍增是什么意思| 美莎片是什么药| 挂急诊和门诊有什么区别| fsw是什么意思| thenorthface是什么牌子| 笑对人生是什么意思| 肝内高回声什么意思| 惊讶的什么| 草龟吃什么| 护理是什么| 什么的童年| 脱口秀是什么意思| 农村适合养殖什么| 安慰的意思是什么| 学架子鼓有什么好处| 什么鬼大家都喜欢| c3c4补体是什么意思| 为什么一饿就胃疼| 紫萱名字的含义是什么| 马镫什么时候发明的| 奇花初胎矞矞皇皇是什么意思| 甜瓜是什么瓜| 行货是什么意思| 亲子鉴定挂什么科| 看肺挂什么科| 考c1驾照需要什么条件| 扭转乾坤什么意思| 色调是什么意思| 戌是什么意思| 梦见抢银行是什么意思| 牛河是什么| 春风十里不如你什么意思| 十二月二号是什么星座| 尿发红什么原因| 西洋参有什么功效| 齐天大圣是什么意思| 英五行属什么| 蜂蜜不能和什么食物一起吃| 黄连治什么病最好| 蝶窦炎是什么病| 植树节是什么季节| n是什么牌子的鞋| 赢荡为什么传位嬴稷| s和m是什么意思啊| 草口耳是什么字| 随诊是什么意思| 高血脂看什么科| 淡蓝色配什么颜色好看| 脚一直出汗是什么原因| 西瓜为什么叫西瓜| 大米里放什么不生虫子| 翡翠是什么| 老舍的原名叫什么| 骨盆前倾有什么危害| 苏打水为什么是甜的| 鸭子什么时候下蛋| 伤官女是什么意思| 金鱼吊兰什么时候开花| 肛门出血什么原因| 员外是什么生肖| 消化不良吃什么| 脚心出汗是什么原因女| 谭字五行属什么| 三月初一是什么星座| 吃什么能消除囊肿| 有待提高是什么意思| 爱居兔女装是什么档次| 女生怀孕的前兆是什么| 弥月之喜是什么意思| 反复感冒是什么原因引起的| 歇菜是什么意思| 激素吃多了对身体有什么副作用| 如鱼得水是什么意思| 带环了月经推迟不来什么原因| 宫内囊性回声代表什么| 解酒喝什么饮料| 指甲看什么科| 人格独立是什么意思| 镁高有什么症状和危害| 碳元素是什么| 舌苔厚白应该吃什么| 什么叫tct检查| 嘴巴旁边长痘痘是为什么| 洛神花是什么| 静脉曲张看什么科| 才高八斗是什么动物| 小儿湿疹是什么原因造成的| 手上脱皮什么原因| 江西的简称是什么| 总胆固醇高忌口什么| 小排畸主要查什么| 脚抽筋吃什么药| cas是什么| 农历8月是什么星座| 益气养阴是什么意思| 除体内湿热最好的中成药是什么| 女人梦见棺材是什么征兆| 官能是什么意思| 汉子婊什么意思| 不完全骨折是什么意思| 过敏性紫癜有什么危害| 股票的量比是什么意思| 孕妇c反应蛋白高说明什么| 为什么会得人乳头瘤病毒| 碳酸钠是什么| 胃肠炎吃什么药好| 木薯淀粉可以做什么| 人生观价值观世界观是什么意思| 举措是什么意思| 鼻窦炎首选什么抗生素| 上房是什么意思| 尿肌酐低说明什么原因| 妈妈的哥哥叫什么| 妈妈吃什么帮宝宝排气| 下面外面瘙痒用什么药| 囊中之物是什么意思| 站姐是什么意思| acc是什么| kp是什么| 怼人是什么意思| 中国梦是什么| 淑字五行属什么| 天下无不是的父母是什么意思| 那天午后我站在你家门口什么歌| 一什么鹿角| 他不懂你的心假装冷静是什么歌| 蛲虫吃什么药| 什么应外合| 专项变应原筛查是什么| 谪仙是什么意思| 身上长红色的痣是什么原因| 日本为什么要偷袭珍珠港| 胰岛素ins是什么意思| 匮乏是什么意思| 什么是出马| 最多笔画的汉字是什么| 11度穿什么衣服| 穷兵黩武是什么意思| 大生化检查能查出什么病来| gl值是什么意思| 什么是超七水晶| 此刻朋友这杯酒最珍贵是什么歌| 81年属鸡的是什么命| plump什么意思| 子宫内膜异位症有什么症状| 为什么青霉素要做皮试| 产妇吃什么好| 洗内裤用什么洗比较好| 颈椎引起的头晕是什么症状| 冬至穿什么衣服| 血小板压积偏高是什么原因| 104是什么意思| 天梭手表什么档次| 女人吃维生素b有什么好处| 智商100属于什么水平| 碘酒和碘伏有什么区别| 鼻窦炎挂什么科| 猪油用什么容器装好| 桑葚泡水喝有什么好处| 脸上白一块一块的是什么原因| 先天性心脏病有什么症状| 双月刊什么意思| 什么烟| 壁是什么意思| 在所不辞是什么意思| 十月十九是什么星座| 吃东西就打嗝是什么原因| 夏末是什么时候| 牙齿松动是什么原因| 备孕吃什么最容易怀孕| 枫树叶子像什么| 念珠菌和霉菌有什么区别| 黑色的屎是什么原因| 惊弓之鸟什么意思| 澳门是什么时候被葡萄牙占领的| 嗓子疼咽口水都疼吃什么药| 忌动土是什么意思| 羊和什么属相最配| 闺房是什么意思| 嗓子哑是什么原因引起的| 呈味核苷酸二钠是什么| 霉菌性阴道炎用什么药效果好| 柠字五行属什么| 海马是什么类动物| 强度是什么意思| 多囊是什么症状| 茶鱼是什么鱼| 尖锐湿疣挂什么科| handmade是什么牌子| 去医院看乳房挂什么科| 心力衰竭是什么症状| 企鹅吃什么| 赊账是什么意思| 晚上吃什么不胖| 什么叫艾滋病| 红米有什么功效和作用| 吃什么水果对眼睛好| 查输卵管是否堵塞要做什么检查| 手心长痣代表什么| 港澳通行证办理需要什么证件| 维生素d补什么| 葡萄胎是什么意思| 肝硬化是什么意思| verde是什么颜色| 呢是什么意思| 胎儿顶臀长是什么意思| 静水流深什么意思| 邮政编码有什么用| 整装是什么意思| 痔疮便血吃什么药| 小蛇吃什么| 四两棉花歇后语是什么| 胃反流吃什么药| 什么叫做洗钱| 尿潴留吃什么药| 后壁是什么意思| 免疫组织化学染色诊断是什么| mar是什么意思| 百度Vai al contenuto

美媒稱長徵九號比肩土星五號 令獵鷹重型火箭相形見絀

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Last but not least esaminiamo gli array, una funzionalità presente nella maggior parte dei linguaggi di alto livello, che in JavaScript è disponibile tramite l'uso della classe Array.

Cos'è un array

[modifica | modifica sorgente]

In informatica, un array (o vettore) è un tipo di dato strutturato (non semplice, che dispone quindi di altri parametri) che permette di organizzare i dati secondo un indice; in pratica, lo stesso oggetto contiene a sua volta numerosi valori, ciascuno dei quali contrassegnato da una chiave numerica. Questo concetto può essere rappresentato da un tabella a singola entrata:

0 1 2 3 ..
valore_0 valore_1 valore_2 valore_3 ...

Gli array in JavaScript

[modifica | modifica sorgente]

Come è stato già detto, per creare un vettore in JavaScript facciamo riferimento alla classe Array:

var vettore = new Array (); //crea un array vuoto

Il costruttore della classe può essere tuttavia usato in maniere differenti:

var vettore = new Array (5); //crea un array contenente 5 elementi
var vocali = new Array ("A", "E", "I", "O", "U"); //crea un array contenente le vocali
var lettere_straniere = ["J", "K", "W", "X", "Y"]; //metodo breve

Per accedere ad un elemento dell'array, per leggerlo o modificarlo, usiamo la notazione:

vettore[indice]

Ad esempio, facendo riferimento alla variabile vocali, avremo questa tabella:

Indici 0 1 2 3 4
Valori A E I O U

e potremo lavorare in questo modo:

alert(vocali[0]); //mostra "A"
vocali[1] = "ciao"
alert(vocali[1]); //mostra "ciao"

Da notare che la chiave dell'array è numerica e parte da 0 e che il valore di ciascun elemento può essere di qualsiasi tipo di dato, ciascuno diverso dall'altro.
Ad esempio, potremmo stabilire un metodo per memorizzare le informazioni su dei prodotti decidendo che all'elemento 0 corrisponde il nome, all'elemento 1 il modello, ecc... creando diversi array:

var descCampi = new Array ("ID", "Modello", "Prezzo")
var prod1 = new Array (1, "3000 plus", 35);
var prod2 = new Array (5, "4000 minus", 12);

Array associativi?

[modifica | modifica sorgente]

Javascript non supporta i vettori con indici associativi. Al suo posto si usano gli oggetti. Se si tenta di creare un array associativo, il parser lo interpreta come un oggetto con un indice denominato. Quindi i metodi degli array non funzioneranno in modo corretto. Ad esempio:

var vet = new Array();
vet["pippo"] = "valore1";
alert(vet.length); //output: 0 
/* length è una proprietà che si applica solo agli array 
con indice numerico, quindi dà un valore errato */

In JavaScript gli array hanno solo indici numerici.

Array multi-dimensionali

[modifica | modifica sorgente]

Per inizializzare un vettore multi-dimensionale (vettore di vettori) possiamo fare cosi:

var multivettore=new Array(new Array("A1","A2"),new Array("B1","B2"))
alert(multivettore[0][0]); //output: A1
alert(multivettore[0][1]); //output: A2
alert(multivettore[1][0]); //output: B1
alert(multivettore[1][1]); //output: B2

L'oggetto Array dispone di una sola proprietà interessante, length, che restituisce il numero di elementi in esso contenuti (contando anche quelli vuoti); da notare che, poiché gli indici partono da 0, un array di 5 elementi avrà gli elementi con le chiavi 0, 1, 2, 3 e 4.

L'uso dell'oggetto Array diventa utile in relazione all'uso dei metodi.

Il metodo concat() restituisce un altro array contenente tutti gli elementi dell'array a cui è applicato seguiti da tutti gli elementi dell'array passato come parametro. Ad esempio:

var a = new Array (1, 2, 3);
var b = new Array (4, 5, 6);
var c = a.concat(b); //1, 2, 3, 4, 5, 6

Da notare che a contiene ancora solo gli elementi 1, 2 e 3.

Il metodo push() inserisce l'elemento indicato come parametro come ultimo elemento dell'array e restituisce la nuova lunghezza dell'array. Ad esempio:

var a = new Array (1, 2, 3);
var b = a.push(7);
alert(b); //4

Da notare che l'array a contiene ora gli elementi 1, 2, 3 e 7

pop() e shift()

[modifica | modifica sorgente]

I metodi pop() e shift() eliminano rispettivamente l'ultimo e il primo elemento dell'array e restituiscono il valore dell'elemento eliminato:

var a = new Array (1, 2, 3);
var b = a.pop(); //ora a contiene 1 e 2
alert(b); //3

Il metodo sort() ordina l'array secondo l'ordine alfabetico:

var a = new Array ("e", "a", "u", "i", "o");
a.sort() //ora le vocali sono ordinate nell'array a
//attenzione: lavora direttamente sull'array!

Attenzione: in JavaScript le minuscole seguono alle maiuscole, quindi ad esempio

var a = new Array ("E", "a", "U", "i", "o");
a.sort() //ora le vocali sono ordinate in questo modo:
//E U a i o!

Per ovviare a questo problema possiamo lavorare su stringhe solo minuscole, usando il metodo toLowerCase in questo modo:

var a = new Array ("E", "a", "U", "i", "o"); //il nostro array
for (var i = 0; i < a.length; i++) { //itera sui singoli elementi...
 a[i] = a[i].toLowerCase(); //...rendendoli minuscoli
}

Questo metodo agisce sull'array invertendo l'ordine degli elementi in esso contenuti. Ad esempio:

var vocali = new Array ("A", "E", "I", "O", "U");
vocali.reverse(); //ora contiene U O I E A

Il metodo slice(), infine, serve per copiare porzioni di array. La sua sintassi è:

arr.slice(a, b)

Il metodo restituisce un array contenente gli elementi di arr compresi tra a (incluso) e b (escluso). Se b non è indicato, vengono copiati tutti gli elementi a partire da a fino alla fine. Ad esempio:

var a = new Array ("A", "E", "I", "O", "U");
var b = a.slice(1,4); //b contiene gli elementi E I O

Iterare sugli elementi di un array

[modifica | modifica sorgente]

Come abbiamo visto precedentemente, è possibile iterare su tutti gli elementi di un array con un ciclo particolare; ad esempio, volendo azzerare il valore di tutti gli elementi di un array, possiamo usare il codice:

var a = new Array ("A", "E", "I", "O", "U");
for (indice in a) {
 a[indice] = ""; //annulla il valore
}
//ora l'array contiene 5 elementi tutti vuoti

Cercare un elemento in un array

[modifica | modifica sorgente]

Di seguito è mostrata a titolo di esempio una funzione arrayIndexOf() che restituisce la posizione di un elemento dato in un array. Nel caso l'elemento non sia presente, restituisce -1.

function arrayIndexOf(array, search) {
	var indice; //contatore
	for (indice in array) {
		if (array[indice] == search)
			return indice;
	}	
	return -1;
}

Il ciclo scorre su tutti gli elementi dell'array: se l'elemento corrente corrisponde a quello cercato (array[indice] == search) la funzione esce restituendo come valore l'indice corrente (return indice;). L'ultima istruzione (return -1;) verrà quindi eseguita se non verrà trovata nessuna corrispondenza nell'array (che è quindi il risultato che si voleva ottenere). La funzione presentate è una ricerca lineare, nel caso di array ordinati si può utilizzare anche l'algoritmo di ricerca binaria.

孩子不愿意吃饭是什么原因 精液带血是什么原因 一什么星星 老年人吃饭老是噎着是什么原因 胃泌素偏低是什么原因
中校军衔是什么级别 朱元璋是什么生肖 拔牙后不能吃什么食物 贫血吃什么药 肠痈是什么意思
腺体增生是什么意思 什么枝条 dr是什么意思 桥本是什么意思 健身后应该吃什么
冠状ct能查什么 纳是什么 传媒公司主要做什么 餐中服用是什么意思 血管堵塞有什么症状
释迦牟尼是什么意思hcv8jop6ns5r.cn 头发热是什么原因hcv9jop6ns8r.cn twice什么意思hcv9jop7ns0r.cn 吃什么奶水会增多hcv7jop6ns5r.cn 怀孕前壁和后壁有什么区别hcv7jop4ns7r.cn
直肠腺瘤是什么hcv9jop8ns3r.cn 喝枸杞水有什么好处hcv9jop7ns1r.cn 为什么有钱人不去植发hcv9jop1ns2r.cn ltp是什么意思gangsutong.com piv是什么病毒hcv8jop6ns4r.cn
月经提前吃什么药hcv9jop2ns6r.cn 浅蓝色配什么颜色好看hcv9jop8ns1r.cn 肝血不足吃什么补最快hcv7jop6ns9r.cn 骨髓穿刺能查出什么病hcv8jop8ns5r.cn 石榴是什么生肖hcv9jop2ns4r.cn
绝经三年了突然又出血了什么原因hcv9jop3ns5r.cn 糖尿病人吃什么水果好cj623037.com 碳酸钠为什么显碱性hcv8jop3ns1r.cn 乳酪和奶酪有什么区别hcv8jop7ns1r.cn 淋巴结肿大是什么样子hcv8jop8ns1r.cn
百度