JavaScript mảng duyệt

Cách duyệt mảng đối tượng đối với mỗi phần tử của mảng.

Array.forEach()

forEach() Phương pháp gọi hàm (hàm hàm lại) một lần cho mỗi phần tử của mảng.

Mẫu

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value, index, array) {
  txt = txt + value + "<br>"; 
}

Thử ngay

Ghi chú:Hàm này nhận 3 tham số:

  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Ví dụ trên chỉ sử dụng tham số value. Ví dụ này có thể được viết lại như sau:

Mẫu

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value) {
  txt = txt + value + "<br>"; 
}

Thử ngay

Tất cả các trình duyệt đều hỗ trợ Array.forEach()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

Array.map()

map() Phương pháp tạo ra một mảng mới bằng cách thực hiện hàm trên mỗi phần tử của mảng.

map() Phương pháp không thực hiện hàm trên các phần tử mảng không có giá trị.

map() Phương pháp không thay đổi giá trị ban đầu của mảng.

Ví dụ này nhân mỗi giá trị của mảng với 2:

Mẫu

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value, index, array) {
  return value * 2;
}

Thử ngay

Vui lòng chú ý rằng hàm này có 3 tham số:

  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Khi hàm hàm lại chỉ sử dụng tham số value, bạn có thể bỏ qua các tham số index và array:

Mẫu

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value) {
  return value * 2;
}

Thử ngay

Tất cả các trình duyệt đều hỗ trợ Array.map()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

Array.filter()

filter() Phương pháp tạo ra một mảng mới chứa các phần tử đã qua kiểm tra.

Ví dụ này tạo ra một mảng mới với các phần tử có giá trị lớn hơn 18:

Mẫu

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Thử ngay

Lưu ý rằng hàm này chấp nhận 3 tham số:

  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Trong ví dụ trên, hàm hàm lại không sử dụng tham số index và array, vì vậy bạn có thể bỏ qua chúng:

Mẫu

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value) {
  return value > 18;
}

Thử ngay

Tất cả các trình duyệt đều hỗ trợ Array.filter()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

Array.reduce()

reduce() Phương pháp chạy hàm trên mỗi phần tử của mảng để tạo ra (giảm nó) một giá trị duy nhất.

reduce() Phương pháp hoạt động từ trái sang phải trong mảng. Hãy xem thêm reduceRight().

reduce() Phương pháp không làm giảm giá trị ban đầu của mảng.

Ví dụ này xác định tổng của tất cả các số trong mảng:

Mẫu

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value, index, array) {
  return total + value;
}

Thử ngay

Vui lòng chú ý rằng hàm này nhận 4 tham số:

  • Tổng số (giá trị khởi đầu/giá trị trả về trước đó))
  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Ví dụ trên không sử dụng tham số index và array. Có thể viết lại như sau:

Mẫu

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value) {
  return total + value;
}

Thử ngay

reduce() Phương pháp có thể nhận một giá trị khởi đầu:

Mẫu

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);
function myFunction(total, value) {
  return total + value;
}

Thử ngay

Tất cả các trình duyệt đều hỗ trợ Array.reduce()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

Array.reduceRight()

reduceRight() Phương pháp chạy hàm trên mỗi phần tử của mảng để tạo ra (giảm nó) một giá trị duy nhất.

reduceRight() Phương pháp hoạt động từ phải sang trái trong mảng. Hãy xem thêm reduce().

reduceRight() Phương pháp không làm giảm giá trị ban đầu của mảng.

Ví dụ này xác định tổng của tất cả các số trong mảng:

Mẫu

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value, index, array) {
  return total + value;
}

Thử ngay

Vui lòng chú ý rằng hàm này nhận 4 tham số:

  • Tổng số (giá trị khởi đầu/giá trị trả về trước đó))
  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Ví dụ trên không sử dụng tham số index và array. Có thể viết lại như sau:

Mẫu

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value) {
  return total + value;
}

Thử ngay

Tất cả các trình duyệt đều hỗ trợ Array.reduceRight()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

Array.every()

every() Phương pháp kiểm tra xem tất cả các giá trị mảng có通过了 kiểm tra hay không.

Ví dụ này kiểm tra xem tất cả các giá trị mảng có lớn hơn 18 hay không:

Mẫu

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Thử ngay

Lưu ý rằng hàm này chấp nhận 3 tham số:

  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Nếu hàm回调 chỉ sử dụng tham số đầu tiên (giá trị) thì có thể bỏ qua các tham số khác:

Mẫu

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value) {
  return value > 18;
}

Thử ngay

Tất cả các trình duyệt đều hỗ trợ Array.every()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

Array.some()

some() Phương pháp kiểm tra xem một số giá trị mảng có通过了 kiểm tra hay không.

Ví dụ này kiểm tra xem một số giá trị mảng có lớn hơn 18 hay không:

Mẫu

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Thử ngay

Lưu ý rằng hàm này chấp nhận 3 tham số:

  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Tất cả các trình duyệt đều hỗ trợ Array.some()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

Array.indexOf()

indexOf() Phương pháp tìm kiếm giá trị phần tử trong mảng và trả về vị trí của nó.

Ghi chú:Vị trí của mục đầu tiên là 0, vị trí của mục thứ hai là 1, và tiếp theo.

Mẫu

Tra cứu mục "Apple" trong mảng:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

Thử ngay

Tất cả các trình duyệt đều hỗ trợ Array.indexOf()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

cú pháp

array.indexOf(mục, bắt đầu)
mục bắt buộc. Các mục cần tra cứu.
bắt đầu Tùy chọn. Đâu là vị trí bắt đầu tra cứu. Giá trị âm sẽ bắt đầu từ vị trí kết thúc và tra cứu đến kết thúc.

Nếu không tìm thấy mục:Array.indexOf() Trả về -1.

Nếu mục xuất hiện nhiều lần, thì trả về vị trí xuất hiện lần đầu tiên.

Array.lastIndexOf()

Array.lastIndexOf() với Array.indexOf() Tương tự, nhưng bắt đầu từ cuối mảng.

Mẫu

Tra cứu mục "Apple" trong mảng:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

Thử ngay

Tất cả các trình duyệt đều hỗ trợ Array.lastIndexOf()trừ khi là Internet Explorer 8 hoặc sớm hơn:

9.0

cú pháp

array.lastIndexOf(mục, bắt đầu)
mục bắt buộc. Các mục cần tra cứu.
bắt đầu Tùy chọn. Điểm bắt đầu để tìm kiếm. Giá trị âm sẽ bắt đầu từ vị trí cuối cùng và tìm kiếm đến đầu.

Array.find()

find() Phương pháp trả về giá trị của phần tử đầu tiên thông qua hàm kiểm tra.

Ví dụ này tìm kiếm (trả về) giá trị của phần tử đầu tiên lớn hơn 18:

Mẫu

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Thử ngay

Lưu ý rằng hàm này chấp nhận 3 tham số:

  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Trình duyệt cũ không hỗ trợ Array.find()Dưới đây là phiên bản trình duyệt đầu tiên hỗ trợ phương pháp này hoàn toàn:

45 12 25 8 32

Array.findIndex()

findIndex() Phương pháp trả về chỉ số của phần tử đầu tiên thông qua hàm kiểm tra.

Ví dụ này tìm kiếm chỉ số của phần tử đầu tiên lớn hơn 18:

Mẫu

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Thử ngay

Lưu ý rằng hàm này chấp nhận 3 tham số:

  • Giá trị mục
  • Chỉ số mục
  • Mảng chính

Trình duyệt cũ không hỗ trợ Array.findIndex()Dưới đây là phiên bản trình duyệt đầu tiên hỗ trợ phương pháp này hoàn toàn:

45 12 25 8 32