2015-11-17 21 views
9

Cho phép nói rằng tôi có:Vòng qua mảng các giá trị với chức năng mũi tên

var someValues = [1, 'abc', 3, 'sss']; 

Làm thế nào tôi có thể sử dụng một chức năng mũi tên để lặp qua mỗi và thực hiện một thao tác trên mỗi giá trị?

+1

Không thể bạn vừa nhìn nó? [Tài liệu MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) đã hoàn thành với vô số ví dụ ... – Emissary

+0

damn đã bỏ lỡ trang đó. Yea Tôi đã tìm kiếm điều này nhờ – PositiveGuy

+0

Không có lý do gì để sử dụng chức năng mũi tên. Nếu bạn muốn lặp qua một mảng, sử dụng vòng lặp 'for of'! – Bergi

Trả lời

18

Nói tóm lại:

someValues.forEach((element) => { 
    console.log(element); 
}); 

Nếu bạn quan tâm đến chỉ số, sau đó tham số thứ hai có thể được thông qua để nhận được chỉ số của phần tử hiện tại:

someValues.forEach((element, index) => { 
    console.log(`Current index: ${index}`); 
    console.log(element); 
}); 

Tham khảo đây để biết thêm về mảng của ES6: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

+0

Có một hạn chế nhỏ về 'forEach': bạn không thể thoát khỏi vòng lặp này bằng câu lệnh' break' hoặc trả về từ hàm kèm theo bằng cách sử dụng câu lệnh 'return'. Thông tin thêm về điều này [ở đây] (https://hacks.mozilla.org/2015/04/es6-in-depth-iterators-and-the-for-of-loop/) – sonlexqt

2

Một câu lệnh có thể được viết như sau:

someValues.forEach(x => console.log(x)); 

hoặc nhiều câu lệnh có thể được kèm theo trong {} như thế này:

someValues.forEach(x => { let a = 2 + x; console.log(a); }); 
+0

cảm ơn. Có cách nào để xác định các mảng bên trong biểu thức bằng cách nào đó quá vì vậy tôi sẽ không cần phải tạo ra một mảng đầu tiên và một dòng ít mã? – PositiveGuy

+0

có, nếu mảng nằm trong một biến: 'arr.forEach (x => console.log (arr))' in toàn bộ mảng nhiều lần vì có các phần tử. Không hoạt động với '[1, 2] .forEach ...' Bạn không thể sử dụng 'this'; nó đề cập đến "điều này" của môi trường gọi – ronasta

Các vấn đề liên quan