JavaScript中foreach
java8 foreach無法使用break,continue,使用return跳過當前迴圈
使用foreach()處理集合時不能使用break和continue這兩個方法,也就是說不能按照普通的for迴圈遍歷集合時那樣根據條件來中止遍歷,而如果要實現在普通for迴圈中的效果時,可以使用return來達到,也就是說如果你在一個方法的lambda表示式中使用return時,這個方法是不會返回的,而只是執行下一次遍歷
// An highlighted block
public void t1(){
List<String> list = Collections.EMPTY_LIST;
list = Arrays.asList("awg","weg","wweg","wegwe");
list.forEach(System.out::println);
list.forEach(str -> {
if("awg".equals(str)){
return;
}
System.out.println(str);
});
}
//結果
awg
weg
wweg
wegwe
weg
wweg
wegwe
我們先用常規的方法去重寫forEach()
// 這裡用const來定義函式,主要是為了防止當我們在開發時,如果別人用了這個名字重新給myForEach賦值時就會報錯,這樣就避免我們寫的方法會被別人意外覆蓋
const myForEach = function(arr, fn){
let i
for(i=0; i<arr.length; i++){
fn(arr[i], i)
}
}
方法已經寫好下面我們來測試一下新forEach()
這裡是不是和上面用forEach()的輸出完全一致啊
但是呼叫方法和上面並不一樣,那我們怎麼把他封裝到Array物件裡去呢
這樣就要用到js裡的原型鏈prototype,其實Javascript中所有的物件都是Object的例項,並繼承Object.prototype的屬性和方法
還是直接看程式碼吧↓
Array.prototype.newForEach = function(fn) {
let i
for(i=0; i<this.length; i++){
fn(this[i], i)
}
}
相關文章
- JavaScript forEach()JavaScript
- JavaScript 中 forEach、map、filter 詳細JavaScriptFilter
- javascript forEach無法break,使用every代替JavaScript
- Mybatis中foreach的使用MyBatis
- php中foreach的使用PHP
- 在lambda的foreach遍歷中break退出(lambda foreach break)
- PHP 中的 foreach 工作原理PHP
- [譯]在 JavaScript 中 為什麼你應當使用 map 和 filter 來替代 forEachJavaScriptFilter
- systemverilog中for/foreach並行執行並行
- PHP中foreach讀取順序PHP
- JAVA中的foreach怎麼用Java
- powershell中的where和foreach比較
- JavaScript 的 4 種陣列遍歷方法: for VS forEach() VS for/in VS for/ofJavaScript陣列
- Iterator & foreach
- foreach陷阱
- Java foreach 中List移除元素丟擲ConcurrentMJava
- 你瞭解jsp中的c:forEach嗎?JS
- MyBatis中批量插入資料,多重forEach迴圈MyBatis
- Map forEach() 方法
- forEach與map
- js中為什麼for迴圈比forEach效能高?JS
- 重學 JS:為啥 await 不能用在 forEach 中JSAI
- foreach使用引用時的一個坑-foreach原始碼分析原始碼
- jstl forEach遍歷JS
- mybatis foreach迴圈MyBatis
- React中兩種遍歷資料的方法(map、forEach)React
- The label does not denote a loop in forEachOOP
- forEach、map、reduce比較
- .Net5 下Dictionary 為什麼可以在foreach中RemoveREM
- foreach迴圈中為什麼不要進行remove/add操作REM
- JS 不使用 for forEach 獲取兩陣列中重複的元素JS陣列
- 你可以終止 forEach 嗎?
- Jmeter——ForEach Controller&Loop ControllerJMeterControllerOOP
- forEach()相容所有瀏覽器瀏覽器
- 深入理解PHP之foreachPHP
- JavaScript中的$JavaScript
- JavaScript中的thisJavaScript
- Mybatis中Foreach動態SQL標籤(map和list兩種情況)MyBatisSQL