Schleifenanweisungen umfassen: 1. for-Schleife; 3. while-Schleife; 6. forEach-Schleife; Filterschleife ;8. „Object.keys“ durchläuft die Eigenschaften des Objekts.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
In der Projektentwicklung ist unabhängig davon, auf welchem Framework sie aufbaut, eine Datenverarbeitung erforderlich, und die Verarbeitungsdaten können nicht von verschiedenen Durchlaufschleifen getrennt werden. Es gibt viele Möglichkeiten, in JavaScript eine Schleife durchzuführen. Hier sind einige gängige js-Schleifen.
1. for-Schleife
Die for-Anweisung wird hauptsächlich zum Ausführen einer Schleife verwendet, die die Anzahl der Ausführungen bestimmt. Die grundlegende Syntax der
for-Anweisung lautet wie folgt:
for([初始值表达式];[条件表达式];[增量表达式]){ 循环体语句; }
Erklärung:
"Anfangswertausdruck": Legen Sie den Anfangswert für die Schleifenvariable fest;
"Bedingter Ausdruck": Als Basis für Sie können entscheiden, ob Sie in die Schleife eintreten möchten. Es handelt sich um einen beliebigen Ausdruck, im Allgemeinen handelt es sich jedoch um einen relationalen Ausdruck oder einen logischen Ausdruck, und sein Wert ist wahr oder falsch. Vor jeder Ausführung der Schleife wird der Wert des bedingten Ausdrucks beurteilt. Wenn der Wert wahr ist (der Wert ist wahr oder ungleich 0 oder nicht leer), wird die Schleifenanweisung ausgeführt. Andernfalls wird die Schleife verlassen und der Code nach der Schleifenanweisung ausgeführt ": Aktualisieren Sie den Wert der Schleifenvariablen basierend auf diesem Ausdruck.
Jeder der oben genannten 3 Ausdrücke kann weggelassen werden, es sollte jedoch beachtet werden, dass in for() nicht weggelassen werden kann. Wenn also alle drei Ausdrücke weggelassen werden, wird die for-Anweisung zu: for(;;){Loop Body Statement}. Zu diesem Zeitpunkt ist zu beachten, dass die Schleife in eine Endlosschleife eintritt, wenn im Schleifenkörper keine Anweisung zum Verlassen der Schleife vorhanden ist.
var sum = 0; for(var i = 1; i <= 100;i++){ //在for语句中使用var声明循环变量,使代码更简洁 sum += i; } alert("1~100的累加和sum=" + sum);
Die for...in-Schleife dient hauptsächlich zum Durchlaufen von Objekten. Wenn Sie den entsprechenden Schlüsselwert des Objekts erhalten möchten, verwenden Sie for.. .in oder praktischer
var a = [1, 2, ,,,,,,true,,,,,,, "a",,,,,,,,,,,,,,,4,,,,,56,,,,,,"b"]; //定义数组 var b = [], num = 0; for (var i = 0; i < a.length; i ++) { //遍历数组 if (typeof a[i] == "number") //如果为数字,则返回该元素的值 b.push(a[i]); num ++; //计数器 } console.log(num); //返回42,说明循环了42次 console.log(b); //返回[1,2,4,56]
Die while-Anweisung ist die am häufigsten verwendete Schleifenanweisung. Sie wird häufig in Programmen verwendet, in denen Sie eine Schleife nur basierend auf Bedingungen ausführen müssen, ohne sich um die Anzahl der Schleifen zu kümmern Schleifen. while 语句的基本语法如下:
while(条件表达式){
循环体;
}
Bedingter Ausdruck: Es handelt sich um eine Schleifenkontrollbedingung, die in Klammern gesetzt werden muss. Es kann sich um einen beliebigen Ausdruck handeln, im Allgemeinen handelt es sich jedoch um einen relationalen Ausdruck oder einen logischen Ausdruck, und der Wert ist wahr oder FALSCH. Hinweis: Werte, die wahr, nicht 0 und nicht leer sind, sind alle wahre Werte, andernfalls sind sie falsche Werte.
Schleifenkörper: Stellt Operationen dar, die wiederholt ausgeführt werden müssen. Es kann sich um eine einfache Anweisung oder eine zusammengesetzte Anweisung handeln. Wenn es sich um eine einfache Anweisung handelt, können die geschweiften Klammern {} weggelassen werden, andernfalls müssen die geschweiften Klammern {} verwendet werden.
Wenn die while-Anweisung ausgeführt wird, wird zunächst der Wert des bedingten Ausdrucks beurteilt. Wenn er wahr ist, wird die Schleifenkörperanweisung ausgeführt, und dann wird der bedingte Ausdruck beurteilt Die Body-Anweisung wird weiterhin ausgeführt. Andernfalls wird die Anweisung ausgeführt, die auf die While-Anweisung folgt. Wenn der Wert des Ausdrucks bei der ersten Auswertung falsch ist (entweder falsch oder 0 oder null usw.), wird der Schleifenkörper kein einziges Mal ausgeführt.
Zum Beispiel verursacht die folgende Schleifenanweisung eine Endlosschleife.
var i=1,s=0; whiel(i<=5){ s+=i; }
Der Anfangswert von i im obigen Code ist 1. Da der Wert der Variablen i im Schleifenkörper nicht geändert wird, ist der Ausdruck i<=5 immer wahr, sodass der Schleifenkörper immer ausgeführt wird.
Endlosschleifen beanspruchen viel Systemressourcen und können schließlich zum Systemabsturz führen. Daher müssen wir beim Programmieren darauf achten, Endlosschleifen zu vermeiden.
var sum = 1, i = 1; var ex = 1; while(sum <= 1.5){ sum += 1/((i + 1)*(i + 1)); if(sum > 1.5) break; i++; ex +=" + 1/(" + i + "*" + i + ")"; } alert("表达式的值小于等于1.5时的i=" + i + ",对应的表达式为:" + ex);
Die do...while-Anweisung ist eine Variation der while-Anweisung. Der Unterschied zwischen den beiden besteht darin, dass die while-Anweisung die Schleifenbedingungsbeurteilung vor der Ausführung der Schleifenkörperanweisung platziert, während die do...while-Anweisung die Schleifenbedingungsbeurteilung nach der Ausführung der Schleifenkörperanweisung platziert. Die grundlegende Syntax der do...while-Anweisung lautet wie folgt:
do{ 循环体; }while (条件表达式);
Die Bedeutung von „bedingter Ausdruck“ und „Schleifenkörper“ ist dieselbe wie die der while-Anweisung. Hier ist zu beachten, dass die do...while-Anweisung mit; enden muss. Wenn sie nicht im Code hinzugefügt wird, fügt JavaScript sie automatisch hinzu. Wenn die
do...while-Anweisung ausgeführt wird, wird zuerst die Schleifenkörperanweisung ausgeführt und dann der Wert des bedingten Ausdrucks beurteilt. Wenn der Wert wahr ist (der Wert ist wahr oder ein Wert ungleich 0), Die Schleifenkörperanweisung wird erneut ausgeführt. Die do...while-Anweisung führt den Schleifenkörper mindestens einmal aus, was sich deutlich von der while-Anweisung unterscheidet.
var sum = 1, i = 1; var ex = 1; do{ sum += 1/((i + 1)*(i + 1)); if(sum > 1.5) break; i++; ex +=" + 1/(" + i + "*" + i + ")"; }while(sum <= 1.5); alert("表达式的值小于等于1.5时的i=" + i + ",对应的表达式为:" + ex);
Die Verwendung von forEach ähnelt der Verwendung von map, mit der Ausnahme, dass die forEach-Methode keinen Wert zurückgibt, sondern nur zum Bearbeiten von Daten verwendet wird und die Schleife nicht in der Mitte gestoppt werden kann , und alle Mitglieder werden immer durchlaufen. Die Schleife kann nicht in der Mitte gestoppt werden und alle Mitglieder werden immer durchlaufen
let arr = [1,2,3,4,5] let arr2 = arr.map((n)=>{ return n+1 }) console.log(arr2) // [2,3,4,5,6] console.log(arr) // [1,2,3,4,5]
map方法接受一个函数作为参数。该函数调用时,map方法向它传入三个参数:当前成员、当前位置和数组本身。
let arrObj = [{ id: 1, name: 'xiaohua' },{ id:2, name: 'xiaomin' },{ id:3, name: 'xiaobai' }] arrObj.map((item,index,arr)=>{ console.log(arr) // arrObj console.log(index) // 0 1 2 console.log(item.name) // xiaohua xiaomin xiaobai })
七、filter过滤循环
filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回。它的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。
let arrObj = [{ id: 1, name: 'xiaohua' },{ id:2, name: 'xiaomin' },{ id:3, name: 'xiaobai' }] let arr2 = arrObj.filter((item,index,arr)=>{ return (item.name === 'xiaohua') }) console.log(arr2) // [{id:1,name:'xiaohua}]
ECMAScirpt5 中 Array 类中的 filter 方法使用目的是移除所有的 ”false“ 类型元素 (false
, null
, undefined
, 0
, NaN
or an empty string):
let arr = [3, 4, 5, 2, 3, undefined, null, 0, ""]; let arrNew = arr.filter(Boolean); console.log(arrNew) // [3, 4, 5, 2, 3]
Boolean 是一个函数,它会对遍历数组中的元素,并根据元素的真假类型,对应返回 true 或 false.
八、Object.keys遍历对象的属性
Object.keys
方法的参数是一个对象,返回一个数组。该数组的成员都是该对象自身的(而不是继承的)所有属性名,且只返回可枚举的属性。
let obj = {name: 'xiaohua', sex: 'male', age: '28'} console.log(Object.keys(obj)) // ["name", "sex", "age"]
判断一个对象是否是空对象,可以用Object.keys(obj).length>0
【推荐学习:javascript高级教程】
Das obige ist der detaillierte Inhalt vonWelche Arten von Javascript-Schleifenanweisungen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!