Iterasyon ng Array sa JavaScript

Ang mga method ng pagbubukas ng array ay gumagawa ng operasyon sa bawat item ng array.

Array.forEach()

forEach() Ang paraan ay nagtutugma ng function sa bawat elemento ng array (callback function).

实例

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

亲自试一试

Komento:Ang function na ito ay tumatanggap ng 3 na argumento:

  • 项目值
  • 项目索引
  • 数组本身

Sa halimbawa na ito, nagamit lamang ang argumento ng value. Ang halimbawa na ito ay maaaring muling isulat bilang:

实例

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

亲自试一试

Ang lahat ng browser ay sumusuporta. Array.forEach(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

Array.map()

map() Ang paraan ay gumagawa ng isang bagong array sa pamamagitan ng pagpapatugtugan ng function sa bawat elemento ng array.

map() Ang paraan ay hindi gagawin ang function sa mga elemento ng array na walang halaga.

map() Ang paraan ay hindi nagbabago sa orihinal na array.

Ang halimbawa na ito ay magpapalit ng bawat halaga ng array ng dalawa:

实例

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

亲自试一试

Puwede nating paliwanag na ang function na ito ay tumatanggap ng 3 na argumento:

  • 项目值
  • 项目索引
  • 数组本身

Kung ang callback function ay gumagamit lamang ng argumento ng value, maaaring ito ay nilisan ang mga argumento ng index at array:

实例

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

亲自试一试

Ang lahat ng browser ay sumusuporta. Array.map(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

Array.filter()

filter() Ang paraan ay gumagawa ng isang bagong array na naglalaman ng mga elemento na napasa pagsusuri.

Ang halimbawa na ito ay gumagawa ng isang bagong array ng mga elemento na may halaga na hihigit sa 18:

实例

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

亲自试一试

请注意此函数接受 3 个参数:

  • 项目值
  • 项目索引
  • 数组本身

Sa halimbawa na ito, ang callback function ay hindi gumagamit ng mga argumento ng index at array, kaya maaaring ito ay nilisan:

实例

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

亲自试一试

Ang lahat ng browser ay sumusuporta. Array.filter(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

Array.reduce()

reduce() Ang paraan ay nagpapatakbo ng function sa bawat elemento ng array upang lumikha ng isang solong halaga (pinabawasan ito).

reduce() Ang paraan ay gumagana mula sa bawat dako ng array. Mga tignan din ang reduceRight().

reduce() Ang paraan ay hindi nagbawas sa orihinal na array.

Ang halimbawa na ito ay naitaas ang kabuuan ng lahat ng numero sa array:

实例

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

亲自试一试

Puwede nating paliwanag na ang function na ito ay tumatanggap ng 4 na argumento:

  • Total na halaga (inisyong halaga/prangkiso ng nakaraang ibabalik na halaga)
  • 项目值
  • 项目索引
  • 数组本身

Ang halimbawa na ito ay hindi gumagamit ng mga argumento ng index at array. Maaaring baguhin ito bilang:

实例

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

亲自试一试

reduce() Ang paraan ay makatanggap ng isang simula ng halaga:

实例

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

亲自试一试

Ang lahat ng browser ay sumusuporta. Array.reduce(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

Array.reduceRight()

reduceRight() Ang paraan ay nagpapatakbo ng function sa bawat elemento ng array upang lumikha ng isang solong halaga (pinabawasan ito).

reduceRight() Ang paraan ay gumagana mula sa kanang dako ng array. Mga tignan din ang reduce().

reduceRight() Ang paraan ay hindi nagbawas sa orihinal na array.

Ang halimbawa na ito ay naitaas ang kabuuan ng lahat ng numero sa array:

实例

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

亲自试一试

Puwede nating paliwanag na ang function na ito ay tumatanggap ng 4 na argumento:

  • Total na halaga (inisyong halaga/prangkiso ng nakaraang ibabalik na halaga)
  • 项目值
  • 项目索引
  • 数组本身

Ang halimbawa na ito ay hindi gumagamit ng mga argumento ng index at array. Maaaring baguhin ito bilang:

实例

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

亲自试一试

Ang lahat ng browser ay sumusuporta. Array.reduceRight(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

Array.every()

every() Ang paraan ay nagpapatunay kung ang lahat ng halaga ng array ay nakapasa sa pagsusuri.

Ang halimbawa na ito ay nagpapatunay kung ang lahat ng halaga ng array ay mas malaki sa 18:

实例

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

亲自试一试

请注意此函数接受 3 个参数:

  • 项目值
  • 项目索引
  • 数组本身

Kung ang callback function ay gumagamit lamang ng unang argumento (halaga), maaaring alisin ang ibang argumento:

实例

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

亲自试一试

Ang lahat ng browser ay sumusuporta. Array.every(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

Array.some()

some() Ang paraan ay nagpapatunay kung ang ilang halaga ng array ay nakapasa sa pagsusuri.

Ang halimbawa na ito ay nagpapatunay kung ang ilang halaga ng array ay mas malaki sa 18:

实例

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

亲自试一试

请注意此函数接受 3 个参数:

  • 项目值
  • 项目索引
  • 数组本身

Ang lahat ng browser ay sumusuporta. Array.some(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

Array.indexOf()

indexOf() Ang paraan ay naghahanap ng halaga ng elemento sa loob ng array at ibabalik ang kanyang posisyon.

Komento:Ang posisyon ng unang item ay 0, ang posisyon ng ikalawang item ay 1, at iba pa.

实例

Hanapin ang item "Apple" sa loob ng array:

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

亲自试一试

Ang lahat ng browser ay sumusuporta. Array.indexOf(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

语法

array.indexOf(item, start)
item dapat. Ang mga item na dapat hahanapin.
start opsional. Saan magpasimula ang paghahanap. Ang mga negatibong halaga ay magsimula sa posisyon mula sa katapusan at maghanap hanggang sa katapusan.

Kung ang item ay hindi natagpuan,Array.indexOf() Ibalik ang -1.

Kung ang item ay maraming beses na lumitaw, ibabalik ang posisyon ng unang pagkakataon.

Array.lastIndexOf()

Array.lastIndexOf() ay Array.indexOf() Katulad, ngunit nagsisimula sa katapusan ng array sa paghahanap.

实例

Hanapin ang item "Apple" sa loob ng array:

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

亲自试一试

Ang lahat ng browser ay sumusuporta. Array.lastIndexOf(),kundi Internet Explorer 8 o mas mas maaga:

Yes 9.0 Yes Yes Yes

语法

array.lastIndexOf(item, start)
item dapat. Ang mga item na dapat hahanapin.
start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到开头。

Array.find()

find() 方法返回通过测试函数的第一个数组元素的值。

这个例子查找(返回)大于 18 的第一个元素的值:

实例

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

亲自试一试

请注意此函数接受 3 个参数:

  • 项目值
  • 项目索引
  • 数组本身

老旧的浏览器不支持 Array.find()。以下列出了完全支持此方法的首个浏览器版本:

45 12 25 8 32

Array.findIndex()

findIndex() 方法返回通过测试函数的第一个数组元素的索引。

这个例子查找大于 18 的第一个元素的索引:

实例

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

亲自试一试

请注意此函数接受 3 个参数:

  • 项目值
  • 项目索引
  • 数组本身

老旧的浏览器不支持 Array.findIndex()。以下列出了完全支持此方法的首个浏览器版本:

45 12 25 8 32