avaScript提供了多種遍歷數(shù)組(或列表)的方法。以下是一些常用的方法及其解讀:
var array=[1, 2, 3, 4, 5];
for (var i=0; i < array.length; i++) {
console.log(array[i]);
}
解讀:這是最基礎(chǔ)的遍歷數(shù)組的方法。for循環(huán)從數(shù)組的第一個元素開始,一直到最后一個元素。我們使用i作為索引,每次循環(huán)時,i的值增加1,直到i的值等于array.length(數(shù)組的長度)。
var array=[1, 2, 3, 4, 5];
for (var index in array) {
console.log(array[index]);
}
解讀:for...in循環(huán)用于遍歷數(shù)組的所有可枚舉屬性,包括原型鏈上的屬性。這個方法并不保證按照元素在數(shù)組中的順序進行遍歷,因此通常不推薦用于遍歷數(shù)組。
var array=[1, 2, 3, 4, 5];
array.forEach(function(value, index) {
console.log(value);
});
解讀:forEach()方法按順序?qū)?shù)組的每個元素執(zhí)行一次提供的函數(shù)。這個方法不會返回值,但它會更新原數(shù)組(如果傳入的函數(shù)對元素進行了修改)。函數(shù)接收兩個參數(shù):當前元素的值和當前元素的索引。
var array=[1, 2, 3, 4, 5];
for (var value of array) {
console.log(value);
}
解讀:for...of循環(huán)用于遍歷可迭代對象(包括數(shù)組、字符串、Map、Set等)。在每次迭代中,當前元素的值為value,而其索引則無法直接獲取。如果你需要同時獲取值和索引,你可能需要使用forEach()或者基礎(chǔ)的for循環(huán)。
var array=[1, 2, 3, 4, 5];
var squaredArray=array.map(function(value) {
return value * value;
});
console.log(squaredArray); // [1, 4, 9, 16, 25]
解讀:map()方法創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果。這個方法返回一個新數(shù)組,不會修改原數(shù)組。這是函數(shù)式編程中常用的一個方法。
述:在JavaScript中,終止`forEach`循環(huán)有多種方法。可以使用`return`語句直接退出回調(diào)函數(shù),或者通過拋出異常并在外部捕獲。另一種方式是使用`some`方法,它在滿足條件時終止循環(huán)。開發(fā)者可以根據(jù)具體情況選擇最適合的方法,靈活運用以提高代碼效率。
在JavaScript中,forEach 是一個用于遍歷數(shù)組元素的方法,它通常是一個很好的選擇,但有時你可能希望在特定條件下終止循環(huán)。在下面,我將詳細列舉幾種在 forEach 循環(huán)中終止的方法,并提供相應的代碼示例。
你可以在 forEach 回調(diào)函數(shù)中使用 return 語句來終止循環(huán)。當 return 被執(zhí)行時,它會立即退出當前回調(diào)函數(shù),從而終止循環(huán)。
let numbers=[1, 2, 3, 4, 5];
numbers.forEach(function (number) {
console.log(number);
if (number===3) {
return; // 終止循環(huán)
}
});
通過在回調(diào)函數(shù)中拋出一個異常,可以終止 forEach 循環(huán)。這需要在循環(huán)外部使用 try...catch 來捕獲異常,從而達到終止循環(huán)的目的。
let numbers=[1, 2, 3, 4, 5];
try {
numbers.forEach(function (number) {
console.log(number);
if (number===3) {
throw new Error('Terminating the loop'); // 拋出異常終止循環(huán)
}
});
} catch (error) {
console.error(error.message);
}
some 方法是一個更好的選擇,因為它在第一次滿足條件時就會終止循環(huán),并且返回一個布爾值表示是否有元素滿足條件。
let numbers=[1, 2, 3, 4, 5];
let conditionMet=false;
numbers.some(function (number) {
console.log(number);
if (number===3) {
conditionMet=true;
return true; // 返回true終止循環(huán)
}
});
if (conditionMet) {
console.log('Condition met!');
} else {
console.log('Condition not met.');
}
這三種方法中,根據(jù)具體情況選擇適合的方式。return 語句簡單直觀,throw 異常更靈活但可能會增加復雜性,而 some 方法則是專為滿足條件即終止設(shè)計的。根據(jù)你的需求和代碼結(jié)構(gòu),選擇最合適的方式。
S數(shù)組遍歷,基本就是for,for in ,foreach,forof,map等一些方法。做個筆記
for(var j=0; j < arr.length; j++) {
//常用,這個就夠了
}
//優(yōu)化版for循環(huán)
for(var j=0,len=arr.length; j < len; j++) {
//使用臨時變量,將長度緩存起來,避免重復獲取數(shù)組長度,當數(shù)組較大時 優(yōu)化效果才會明顯
}
實項:
for ( var i=0;i<arrTmp.length;i++){
console.log(i+ ": " +arrTmp[i])
}
//實例
var stemItem="",arrItem=r.data.metas.choices;
for (let index=0; index < arrItem.length; index++) {
stemItem +='<div><input type="checkbox" id="'+index+'">
<label for="'+index+'">'+arrItem[index]+'</label></div>';
}
for(j in arr) {
//很多人用,但是性能分析,顯示它效率最低
}
for ( var i in objTmp){
console.log(i+ ": " +objTmp[i])
}
//forEach遍歷數(shù)組,三個參數(shù)依次是數(shù)組元素、索引、數(shù)組本身
arrTmp.forEach( function (value,index,array){
console.log(value+ "," +index+ "," +array[index])
})
//Jquery 的$.each()
數(shù)組
$.each([52, 97], function(index, value) {
alert(index + ': ' + value); //index是索引-0:52;1:97
});
對象
var obj={
"ff": "在",
"性別": 1
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );//ff:在
});
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。