Heim  >  Artikel  >  Web-Frontend  >  Die Verwendung von JQuery-basierten Arrays

Die Verwendung von JQuery-basierten Arrays

怪我咯
怪我咯Original
2017-06-29 10:54:431114Durchsuche

Die Array-Verarbeitung von jQuery ist praktisch und voll funktionsfähig. Es kapselt viele Funktionen, die ein natives JavaScript-Array nicht in einem Schritt erreichen kann. Im Folgenden wird die Verwendung von JQuery-Arrays ausführlich erläutert.

1 $.each(array, [callback]) Traversal [häufig verwendet]

Erläuterung: Anders als beim Durchlaufen von jQuery-Objekten kann die Methode $().each() zum Durchlaufen jedes Objekts verwendet werden. Die Rückruffunktion hat zwei Parameter: Der erste ist das Mitglied des Objekts oder der Index des Arrays und der zweite ist die entsprechende Variable oder der entsprechende Inhalt. Wenn Sie die Each-Schleife verlassen müssen, können Sie dies tun Die Rückruffunktion gibt false zurück und andere Rückgabewerte werden ignoriert.

Jeder Durchlauf ist jedem bekannt. In der normalen Ereignisverarbeitung handelt es sich um eine Variante der for-Schleife, die jedoch leistungsfähiger ist als die for-Schleife. In einem Array können der Array-Index und der entsprechende Wert problemlos erfasst werden. Beispiel:

Der Code lautet wie folgt:

var _mozi=['墨家','墨子','墨翟','兼爱非攻','尚同尚贤']; //本文所用到的数组, 下同  
$.each(_mozi,function(key,val){  
    //回调函数有两个参数,第一个是元素索引,第二个为当前值  
    alert('_mozi数组中 ,索引 : '+key+' 对应的值为: '+val);  
});

Im Vergleich zum nativen for..in ist jeder stärker. for..in kann auch das Array durchlaufen und den entsprechenden Index zurückgeben, der Wert muss jedoch über arrName[key] abgerufen werden.

2. $.grep(array, callback, [invert]) filter array [häufig verwendet]

Erläuterung: Verwenden Sie die Filterfunktion, um Array-Elemente zu filtern (Der dritte Parameter ist wahr oder falsch und der Rückgabewert der Filterfunktion ist invertiert. Ich persönlich halte das für nicht sehr nützlich): Das zu filternde Array und die Filterfunktion müssen true zurückgeben, um das zu behalten Elemente oder false, um die Elemente zu löschen. Darüber hinaus kann die Filterfunktion auch auf eine Textzeichenfolge festgelegt werden.

Der Code lautet wie folgt:

$.grep(_mozi,function(val,key){  
    //过滤函数有两个参数,第一个为当前元素,第二个为元素索引  
    if(val=='墨子'){  
        alert('数组值为 墨子 的下标是: '+key);  
    }  
});  
var _moziGt1=$.grep(_mozi,function(val,key){  
    return key>1;  
});  
alert('_mozi数组中索引值大于1的元素为: '+_moziGt1);  
var _moziLt1=$.grep(_mozi,function(val,key){  
    return key>1;  
},true);  
//此处传入了第三个可靠参数,对过滤函数中的返回值取反  
alert('_mozi数组中索引值小于等于1的元素为: '+_moziLt1);

3. $.map(array,[callback])Konvertieren Sie das Array entsprechend den gegebenen Bedingungen [allgemein ]

Erklärung: Die Konvertierungsfunktion wird als Parameter für jedes Array-Element aufgerufen und der Konvertierungsfunktion wird ein Element übergeben, das das konvertierte Element als Parameter darstellt. Die Konvertierungsfunktion kann den konvertierten Wert null zurückgeben (Löschen Sie das Element in den Array-Elementen) oder ein Array mit Werten, erweitert zum ursprünglichen Array.

Dies ist eine sehr leistungsfähige Methode, die jedoch nicht häufig verwendet wird. Sie kann den Wert eines Array-Elements basierend auf bestimmten Bedingungen aktualisieren oder ein neues Kopierelement basierend auf dem ursprünglichen Wert erweitern.

Der Code lautet wie folgt:

var _mapArrA=$.map(_mozi,function(val){  
    return val+'[新加]';  
});  
var _mapArrB=$.map(_mozi,function(val){  
    return val=='墨子' ? '[只给墨子加]'+val : val;  
});  
var _mapArrC=$.map(_mozi,function(val){  
    //为数组元素扩展一个新元素  
    return [val,(val+'[扩展]')];  
});  
alert('在每个元素后面加\'[新加]\'字符后的数组为: '+ _mapArrA);  
alert('只给元素 墨子 添加字符后的数组为: '+ _mapArrB);  
alert('为原数组中每个元素,扩展一个添加字符\'[新加]\'的元素,返回的数组为 '+_mapArrC);

4 .$.inArray(val,array) bestimmt, ob der Wert im Array vorhanden ist [häufig verwendet]

Erläuterung: Bestimmen Sie die Position des ersten Parameters im Array, beginnend bei 0 (gibt -1 zurück, wenn er nicht gefunden wird).

Erinnern Sie sich an die Methode indexOf()? indexOf() gibt die erste Vorkommensposition der Zeichenfolge zurück, während $.inArray() die Position des übergebenen Parameters im Array zurückgibt ist ein Wert größer oder gleich 0 oder -1, wenn er nicht gefunden wird. Jetzt wissen Sie, wie Sie ihn verwenden. Damit können Sie leicht feststellen, ob ein Wert im Array vorhanden ist.

Der Code lautet wie folgt:

var _exist=$.inArray('墨子',_mozi);  
var _inexistence=$.inArray('卫鞅',_mozi)  
if(_exist>=0){  
    alert('墨子 存在于数组_mozi中,其在数组中索引值是: '+_exist);  
}  
if(_inexistence<0){  
    alert(&#39;卫鞅 不存在于数组_mozi中!,返回值为: &#39;+_inexistence+&#39;!&#39;);  
}

5 .$.merge(first, second) führt zwei Arrays zusammen [allgemein]

Erklärung : Rückgabe Das Ergebnis ändert den Inhalt des ersten Arrays – auf die Elemente des ersten Arrays folgen die Elemente des zweiten Arrays. Diese Methode verwendet die Methode von jQuery, um die native concat()-Methode zu ersetzen, ihre Funktion ist jedoch nicht so leistungsstark wie concat(), das mehrere Arrays gleichzeitig zusammenführen kann.

Der Code lautet wie folgt:

//原生concat()可能比它还简洁点  
_moziNew=$.merge(_mozi,[&#39;鬼谷子&#39;,&#39;商鞅&#39;,&#39;孙膑&#39;,&#39;庞涓&#39;,&#39;苏秦&#39;,&#39;张仪&#39;])  
alert(&#39;合并后新数组长度为: &#39;+_moziNew.length+&#39;. 其值为: &#39;+_moziNew);

6 .$.unique(array) filtert doppelte Elemente im Array [nicht häufig verwendet]

Erklärung: Duplikat löschen Elemente im Array. Verarbeitet nur das Löschen von DOM-Elementarrays, kann jedoch keine Zeichenfolgen- oder numerischen Arrays verarbeiten.

Als ich diese Methode zum ersten Mal sah, dachte ich, es sei eine sehr praktische Methode, mit der Duplikate gefiltert werden können. Wenn Sie jedoch genauer hinschauen, können Sie feststellen, dass es nur DOM-Elemente verarbeiten kann und die Funktionalität um 20 % eingeschränkt ist. Daher habe ich es als ein Element definiert, das nicht häufig verwendet wird. Zumindest habe ich es nicht verwendet, seit ich jQuery verwendet habe.

Der Code lautet wie folgt:

var _h2Arr=$.makeArray(h2obj);  
//将数组_h2Arr重复一次  
_h2Arr=$.merge(_h2Arr,_h2Arr);  
var _curLen=_h2Arr.length;  
_h2Arr=$.unique(_h2Arr);  
var _newLen=_h2Arr.length;  
alert(&#39;数组_h2Arr原长度值为: &#39;+_curLen+&#39; ,过滤后为: &#39;+_newLen  
      +&#39; .共过滤 &#39;+(_curLen-_newLen)+&#39;个重复元素&#39;)

7. $.makeArray(obj) Array-ähnliche Objekte in Arrays konvertieren [nicht häufig verwendet]

Erklärung: Konvertieren Sie ein Array-ähnliches Objekt in ein Array-Objekt. Das Array-ähnliche Objekt hat ein Längenattribut und sein Mitgliedsindex reicht von 0 bis Länge-1.
Dies ist eine redundante Methode. Das allmächtige $ enthält diese Funktion bereits. Die Erklärung auf der offiziellen jQuery-Website ist sehr vage. Tatsächlich wird ein Array-ähnliches Objekt (z. B. eine Sammlung von Elementobjekten, die mit getElementsByTagName erhalten wurden) in ein Array-Objekt konvertiert.
Der Code lautet wie folgt:

var _makeArr=$.makeArray(h2obj);  
alert(&#39;h2元素对象集合的数据
类型转换
为: &#39;+_makeArr.constructor.name);//输出Array

8. $(dom).toArray() stellt alle DOM-Elemente in Arrays wieder her [nicht häufig verwendet]

Erklärung: Alle DOM-Elemente in der jQuery-Sammlung in einem Array wiederherstellen. Es ist keine häufig verwendete Methode. Ich persönlich halte sie für so überflüssig wie $.makeArray. Der Code lautet wie folgt:

Das obige ist der detaillierte Inhalt vonDie Verwendung von JQuery-basierten Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn