คำถามติดแท็ก foreach

foreach เป็นโครงสร้างวนรอบที่เรียกใช้งานโค้ดที่กำหนดสำหรับแต่ละองค์ประกอบในรายการ / คอลเลกชัน / อาร์เรย์ ในทางตรงกันข้ามกับ for for loop วง foreach ไม่จำเป็นต้องใช้ coder เพื่อรักษาตัวแปรตัวนับเพื่อหลีกเลี่ยงข้อผิดพลาดแบบ off-by-one (fencepost) ขอแนะนำให้ใช้เมื่อจำเป็นต้องใช้การวนซ้ำอย่างง่ายทั่วทั้ง array / list / collection .


5
วิธีรับค่าดัชนีจาก foreach loop ใน jstl
ฉันมีค่าที่กำหนดไว้ในrequestวัตถุดังต่อไปนี้ String[] categoriesList=null; categoriesList = engine.getCategoryNamesArray(); request.setAttribute("categoriesList", categoriesList ); และนี่คือวิธีที่ฉันทำซ้ำในหน้า jsp <% if(request.getAttribute("categoriesList") != null) { %> <c:forEach var="categoryName" items="${categoriesList}"> <li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li> </c:forEach> <% }%> ฉันจะรับดัชนีของแต่ละองค์ประกอบและส่งต่อไปยังฟังก์ชัน JavaScript onclick="getCategoryIndex()"ได้อย่างไร
110 java  jsp  for-loop  foreach  jstl 

12
ถ้า (items! = null) ฟุ่มเฟือยก่อน foreach (รายการ T ในรายการ)?
ฉันมักจะเจอรหัสดังต่อไปนี้: if ( items != null) { foreach(T item in items) { //... } } โดยทั่วไปifเงื่อนไขจะทำให้แน่ใจว่าforeachบล็อกจะดำเนินการต่อเมื่อitemsไม่เป็นโมฆะ ฉันสงสัยว่าifเงื่อนไขนั้นจำเป็นจริงๆหรือforeachจะจัดการกับกรณีนี้หรือitems == nullไม่ ฉันหมายความว่าฉันสามารถเขียน foreach(T item in items) { //... } โดยไม่ต้องกังวลว่าจะitemsเป็นโมฆะหรือไม่? เป็นifฟุ่มเฟือยสภาพ? หรือขึ้นอยู่กับประเภทของitemsหรืออาจจะTด้วย?

1
ประสิทธิภาพของ Javascript: 'for' vs 'forEach' [closed]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ อะไรคือมาตรฐานปัจจุบันในปี 2017 ใน Javascript ที่มีสำหรับ () ลูปกับ a .forEach ฉันกำลังทำงานของฉันผ่านทางหนุ่มสตีล "Web Dev Bootcamp" ใน Udemy และเขาโปรดปรานforEachมากกว่าforในคำสอนของพระองค์ ฉันได้ แต่ค้นหาสิ่งต่างๆในระหว่างการออกกำลังกายเป็นส่วนหนึ่งของการทำงานการเรียนการสอนและฉันพบมากขึ้นและคำแนะนำเพิ่มเติมที่จะใช้for-loop forEachมากกว่า คนส่วนใหญ่ดูเหมือนจะระบุว่า for loop นั้นมีประสิทธิภาพมากกว่า นี่คือสิ่งที่เปลี่ยนแปลงไปตั้งแต่เริ่มเขียนหลักสูตร (ประมาณปี 2015) หรือเป็นข้อดีข้อเสียของแต่ละข้อซึ่งจะได้เรียนรู้ด้วยประสบการณ์ที่มากขึ้น คำแนะนำใด ๆ จะได้รับการชื่นชมอย่างมาก

9
ความแตกต่างของประสิทธิภาพสำหรับโครงสร้างควบคุม 'สำหรับ' และ 'foreach' ใน C #
ข้อมูลโค้ดใดจะให้ประสิทธิภาพดีกว่ากัน ส่วนโค้ดด้านล่างเขียนด้วย C # 1. for(int counter=0; counter<list.Count; counter++) { list[counter].DoSomething(); } 2. foreach(MyType current in list) { current.DoSomething(); }

7
จะลบองค์ประกอบออกจากอาร์เรย์ใน forEach loop ได้อย่างไร?
ฉันกำลังพยายามลบองค์ประกอบในอาร์เรย์แบบforEachวนซ้ำ แต่มีปัญหากับโซลูชันมาตรฐานที่ฉันเคยเห็น นี่คือสิ่งที่ฉันกำลังพยายาม: review.forEach(function(p){ if(p === '\u2022 \u2022 \u2022'){ console.log('YippeeeE!!!!!!!!!!!!!!!!') review.splice(p, 1); } }); ฉันรู้ว่ามันเข้ามาifเพราะฉันเห็นYippeeeeeE!!!!!!!!!!!!!ในคอนโซล ปัญหาของฉัน:ฉันรู้ว่าลอจิกสำหรับลูปและถ้าตรรกะของฉันฟังดูดี แต่ความพยายามของฉันในการลบองค์ประกอบปัจจุบันออกจากอาร์เรย์ล้มเหลว อัพเดท: ลองใช้คำตอบของ Xotic750 แล้วองค์ประกอบยังไม่ถูกลบ: นี่คือฟังก์ชันในรหัสของฉัน: review.forEach(function (item, index, object) { if (item === '\u2022 \u2022 \u2022') { console.log('YippeeeE!!!!!!!!!!!!!!!!') object.splice(index, 1); } console.log('[' + item + ']'); }); นี่คือผลลัพธ์ที่อาร์เรย์ยังไม่ถูกลบ: [Scott McNeil] [reviewed 4 months …

5
กลับมาจาก lambda forEach () ใน java
ฉันกำลังพยายามเปลี่ยนบางส่วนสำหรับแต่ละลูปเป็นแลมบ์ดา - forEach()วิธีการเพื่อค้นหาความเป็นไปได้ของนิพจน์แลมบ์ดา สิ่งต่อไปนี้น่าจะเป็นไปได้: ArrayList<Player> playersOfTeam = new ArrayList<Player>(); for (Player player : players) { if (player.getTeam().equals(teamName)) { playersOfTeam.add(player); } } ด้วยแลมด้า forEach() players.forEach(player->{if (player.getTeam().equals(teamName)) {playersOfTeam.add(player);}}); แต่อันถัดไปใช้ไม่ได้: for (Player player : players) { if (player.getName().contains(name)) { return player; } } กับแลมด้า players.forEach(player->{if (player.getName().contains(name)) {return player;}}); มีบางอย่างผิดปกติในไวยากรณ์ของบรรทัดสุดท้ายหรือเป็นไปไม่ได้ที่จะกลับจากforEach()วิธีการ?

22
สองอาร์เรย์ใน foreach loop
ฉันต้องการสร้างselectboxอาร์เรย์โดยใช้สองอาร์เรย์โดยหนึ่งมีรหัสประเทศและอีกอันที่มีชื่อประเทศ นี่คือตัวอย่าง: <?php $codes = array('tn','us','fr'); $names = array('Tunisia','United States','France'); foreach( $codes as $code and $names as $name ) { echo '<option value="' . $code . '">' . $name . '</option>'; } ?> วิธีนี้ไม่ได้ผลสำหรับฉัน ข้อเสนอแนะใด ๆ ?
100 php  arrays  foreach 

7
ตรวจหาค่าว่างใน foreach loop
มีวิธีที่ดีกว่าในการดำเนินการต่อไปนี้หรือไม่: ฉันต้องการตรวจสอบค่าว่างเพื่อให้เกิดขึ้นในไฟล์ส่วนหัวก่อนดำเนินการต่อกับลูป if (file.Headers != null) { foreach (var h in file.Headers) { //set lots of properties & some other stuff } } ในระยะสั้นมันดูน่าเกลียดเล็กน้อยที่จะเขียน foreach ภายใน if เนื่องจากระดับการเยื้องที่เกิดขึ้นในโค้ดของฉัน เป็นสิ่งที่น่าจะประเมินได้ foreach(var h in (file.Headers != null)) { //do stuff } เป็นไปได้?
97 c#  loops  foreach  null 

5
วิธีการแปลงสตริงทั้งหมดในรายการ <string> เป็นตัวพิมพ์เล็กโดยใช้ LINQ
เมื่อวานนี้ฉันเห็นข้อมูลโค้ดในการตอบกลับรายการหนึ่งใน StackOverflow ที่ทำให้ฉันรู้สึกทึ่ง มันเป็นแบบนี้: List&lt;string&gt; myList = new List&lt;string&gt; {"aBc", "HELLO", "GoodBye"}; myList.ForEach(d=&gt;d.ToLower()); ฉันหวังว่าฉันจะใช้มันเพื่อแปลงรายการทั้งหมดใน myList เป็นตัวพิมพ์เล็ก อย่างไรก็ตามมันไม่เกิดขึ้น ... หลังจากรันสิ่งนี้ปลอกใน myList จะไม่เปลี่ยนแปลง ดังนั้นคำถามของฉันคือมีวิธีหรือไม่โดยใช้นิพจน์ LINQ และ Lambda เพื่อวนซ้ำและแก้ไขเนื้อหาของรายการในลักษณะที่คล้ายกันนี้ ขอบคุณ Max
95 c#  linq  lambda  foreach 

10
การประกาศตัวแปรภายในหรือภายนอก foreach loop: ไหนเร็ว / ดีกว่ากัน?
อันไหนเร็ว / ดีกว่ากัน อันนี้: List&lt;User&gt; list = new List&lt;User&gt;(); User u; foreach (string s in l) { u = new User(); u.Name = s; list.Add(u); } หรืออันนี้: List&lt;User&gt; list = new List&lt;User&gt;(); foreach (string s in l) { User u = new User(); u.Name = s; list.Add(u); } ทักษะการพัฒนามือใหม่ของฉันบอกฉันว่าอันแรกดีกว่า แต่เพื่อนของฉันบอกฉันว่าฉันผิด …
93 c#  foreach 

10
ทำไม nodelist ไม่มี forEach?
ฉันกำลังทำงานกับสคริปต์สั้น ๆ เพื่อเปลี่ยน&lt;abbr&gt;ข้อความภายในขององค์ประกอบ แต่พบว่าnodelistไม่มีforEachวิธีการ ฉันรู้ว่านั่นnodelistไม่ได้สืบทอดมาArrayแต่ดูเหมือนforEachจะเป็นวิธีที่มีประโยชน์หรือไม่ มีปัญหาการใช้งานโดยเฉพาะอย่างยิ่งผมไม่ได้ตระหนักถึงการป้องกันที่เพิ่มforEachไปnodelist? หมายเหตุ: ฉันทราบว่า Dojo และ jQuery ทั้งคู่มีforEachรูปแบบบางอย่างสำหรับ nodelists ของพวกเขา ฉันไม่สามารถใช้ได้เนื่องจากข้อ จำกัด


3
การใช้ forEach บนอาร์เรย์จาก getElementsByClassName ส่งผลให้ "TypeError: undefined ไม่ใช่ฟังก์ชัน"
ในJSFiddle ของฉันฉันแค่พยายามวนซ้ำองค์ประกอบต่างๆ อาร์เรย์ไม่ว่างเปล่าตามที่ข้อความบันทึกพิสูจน์ แต่การโทรแจ้งข้อผิดพลาดforEach"Uncaught TypeError: undefinedis not a function" ให้กับฉัน ฉันต้องทำอะไรโง่ ๆ ผมทำอะไรผิดหรือเปล่า? รหัสของฉัน: var arr = document.getElementsByClassName('myClass'); console.log(arr); console.log(arr[0]); arr.forEach(function(v, i, a) { console.log(v); }); .myClass { background-color: #FF0000; } &lt;div class="myClass"&gt;Hello&lt;/div&gt; เรียกใช้ข้อมูลโค้ดซ่อนผลลัพธ์ขยายข้อมูลโค้ด

9
c # foreach (คุณสมบัติในวัตถุ) …มีวิธีง่ายๆในการทำเช่นนี้หรือไม่?
ฉันมีคลาสที่มีคุณสมบัติหลายอย่าง (ทั้งหมดเป็นสตริงหากมีความแตกต่าง) ฉันยังมีรายการซึ่งมีอินสแตนซ์ต่างๆของคลาส ในขณะที่สร้างการทดสอบหน่วยสำหรับชั้นเรียนของฉันฉันตัดสินใจว่าฉันต้องการวนซ้ำแต่ละวัตถุในรายการจากนั้นวนซ้ำคุณสมบัติแต่ละรายการของวัตถุนั้น ... ฉันคิดว่าการทำเช่นนี้จะง่ายเหมือน ... foreach (Object obj in theList) { foreach (Property theProperties in obj) { do some stufff!!; } } แต่ไม่ได้ผล! :( ฉันได้รับข้อผิดพลาดนี้ ... "คำสั่ง foreach ไม่สามารถทำงานกับตัวแปรประเภท 'Application.Object' ได้เนื่องจาก 'Application.Object' ไม่มีคำจำกัดความสาธารณะสำหรับ 'GetEnumerator'" ไม่มีใครรู้วิธีการทำสิ่งนี้โดยไม่ต้องใช้ ifs และ loops มากมายหรือไม่ต้องเข้าไปทำอะไรที่ซับซ้อนเกินไป?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.