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、map、filter 詳細JavaScriptFilter
- JavaScript forEach()JavaScript
- JavaScript中Map和ForEach的區別JavaScript
- java中的forEachJava
- javascript forEach無法break,使用every代替JavaScript
- php中foreach的使用PHP
- java中 foreach 的使用Java
- JavaScript裡的迴圈方法:forEach,for-in,for-ofJavaScript
- 一張圖看懂JavaScript中陣列的迭代方法:forEach、map、filter、reduce、every、someJavaScript陣列Filter
- PHP 中的 foreach 工作原理PHP
- [譯]在 JavaScript 中 為什麼你應當使用 map 和 filter 來替代 forEachJavaScriptFilter
- PHP中foreach讀取順序PHP
- JAVA中的foreach怎麼用Java
- mybatis中foreach標籤詳解MyBatis
- powershell中的where和foreach比較
- C#中foreach基礎使用方法C#
- JavaScript 的 4 種陣列遍歷方法: for VS forEach() VS for/in VS for/ofJavaScript陣列
- Iterator & foreach
- Java foreach 中List移除元素丟擲ConcurrentMJava
- MyBatis中批量插入資料,多重forEach迴圈MyBatis
- 你瞭解jsp中的c:forEach嗎?JS
- systemverilog中for/foreach並行執行並行
- Foreach巢狀Foreach速度慢優化方案巢狀優化
- foreach迴圈和記憶體中的陣列記憶體陣列
- js中為什麼for迴圈比forEach效能高?JS
- 重學 JS:為啥 await 不能用在 forEach 中JSAI
- React中兩種遍歷資料的方法(map、forEach)React
- PHP中關於foreach的簡單的用法總結PHP
- foreach使用引用時的一個坑-foreach原始碼分析原始碼
- mybatis foreach迴圈MyBatis
- MyBatis foreach標籤MyBatis
- Java 8 forEach使用Java
- .Net5 下Dictionary 為什麼可以在foreach中RemoveREM
- 細說 C# 中的 IEnumerable,你真的懂 foreach 嗎?C#
- JavaScript的map迴圈、forEach迴圈、filter迴圈、reduce迴圈、reduceRight迴圈JavaScriptFilter
- jstl forEach遍歷JS
- foreach迴圈中為什麼不要進行remove/add操作REM
- JS 不使用 for forEach 獲取兩陣列中重複的元素JS陣列