JavaScript 数组迭代

数组迭代方法对每个数组项进行操作。

Array.forEach()

forEach() 方法为每个数组元素调用一次函数(回调函数)。

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

ప్రకటన:该函数接受 3 个参数:

  • ప్రాజెక్ట్ విలువ
  • ప్రాజెక్ట్ సూచిక
  • అరెయ్ స్వయం

上面的例子只用了 value 参数。这个例子可以重新写为:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.forEach()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

Array.map()

map() 方法通过对每个数组元素执行函数来创建新数组。

map() 方法不会对没有值的数组元素执行函数。

map() 方法不会更改原始数组。

这个例子将每个数组值乘以2:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

请注意,该函数有 3 个参数:

  • ప్రాజెక్ట్ విలువ
  • ప్రాజెక్ట్ సూచిక
  • అరెయ్ స్వయం

当回调函数仅使用 value 参数时,可以省略索引和数组参数:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.map()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

Array.filter()

filter() 方法创建一个包含通过测试的数组元素的新数组。

这个例子用值大于 18 的元素创建一个新数组:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

ఈ ఫంక్షన్ 3 పారామీటర్లను అంగీకరిస్తుంది:

  • ప్రాజెక్ట్ విలువ
  • ప్రాజెక్ట్ సూచిక
  • అరెయ్ స్వయం

在上面的例子中,回调函数不使用 index 和 array 参数,因此可以省略它们:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.filter()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

Array.reduce()

reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。

reduce() 方法在数组中从左到右工作。另请参阅 reduceRight()。

reduce() 方法不会减少原始数组。

ఈ ఉదాహరణ సంఖ్యల సమాంతరం నిర్ధారిస్తుంది అనే సంఖ్యల సంఖ్యల సమాంతరం నిర్ధారిస్తుంది:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

ఈ ఫంక్షన్ 4 పారామిటర్లను అంగీకరిస్తుంది చూడండి:

  • మొత్తం (ప్రారంభ విలువ/ముంది ప్రతిస్పందన విలువ)
  • ప్రాజెక్ట్ విలువ
  • ప్రాజెక్ట్ సూచిక
  • అరెయ్ స్వయం

పూర్వ ఉదాహరణలో స్థానం మరియు array పారామీటర్లను వినియోగించలేదు. దానిని మార్చవచ్చు:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

reduce() 方法能够接受一个初始值:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.reduce()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

Array.reduceRight()

reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。

reduceRight() 方法在数组中从右到左工作。另请参阅 reduce()。

reduceRight() 方法不会减少原始数组。

ఈ ఉదాహరణ సంఖ్యల సమాంతరం నిర్ధారిస్తుంది అనే సంఖ్యల సంఖ్యల సమాంతరం నిర్ధారిస్తుంది:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

ఈ ఫంక్షన్ 4 పారామిటర్లను అంగీకరిస్తుంది చూడండి:

  • మొత్తం (ప్రారంభ విలువ/ముంది ప్రతిస్పందన విలువ)
  • ప్రాజెక్ట్ విలువ
  • ప్రాజెక్ట్ సూచిక
  • అరెయ్ స్వయం

పూర్వ ఉదాహరణలో స్థానం మరియు array పారామీటర్లను వినియోగించలేదు. దానిని మార్చవచ్చు:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.reduceRight()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

Array.every()

every() విధానం అన్ని నమూనాలు పరీక్షను అనుమతిస్తుంది అని పరిశీలిస్తుంది.

ఈ ఉదాహరణలో అన్ని నమూనాలు విలువలు 18 కంటే ఎక్కువగా ఉన్నాయి అని పరిశీలిస్తుంది:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

ఈ ఫంక్షన్ 3 పారామీటర్లను అంగీకరిస్తుంది:

  • ప్రాజెక్ట్ విలువ
  • ప్రాజెక్ట్ సూచిక
  • అరెయ్ స్వయం

కాల్బ్యాక్ ఫంక్షన్ మాత్రమే మొదటి పారామీటర్ (విలువ) ఉపయోగిస్తే ఇతర పారామీటర్లను సరళీకరించవచ్చు:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.every()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

Array.some()

some() విధానం కొన్ని నమూనాలు పరీక్షను అనుమతిస్తుంది అని పరిశీలిస్తుంది.

ఈ ఉదాహరణలో కొన్ని నమూనాలు విలువలు 18 కంటే ఎక్కువగా ఉన్నాయి అని పరిశీలిస్తుంది:

ఇన్స్టాన్స్

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

స్వయంగా ప్రయత్నించండి

ఈ ఫంక్షన్ 3 పారామీటర్లను అంగీకరిస్తుంది:

  • ప్రాజెక్ట్ విలువ
  • ప్రాజెక్ట్ సూచిక
  • అరెయ్ స్వయం

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.some()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

Array.indexOf()

indexOf() మాదిరిగా విధానం అంశాలలో మూలము విలువను అన్వేషించి అది స్థానాన్ని తిరిగి ఇస్తుంది.

ప్రకటన:మొదటి అంశం యొక్క స్థానం 0, రెండవ అంశం యొక్క స్థానం 1 మరియు ఇలా కొనసాగుతుంది.

ఇన్స్టాన్స్

నమూనాలు అంశం "Apple" ని అన్వేషించండి:

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

స్వయంగా ప్రయత్నించండి

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.indexOf()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

సంకేతబద్ధం

array.indexOf(అంశం, ప్రారంభం)
అంశం అవసరమైనది. తనిఖీ చేయవలసిన అంశం.
ప్రారంభం ఎంపికాత్మకం. అన్వేషణ ప్రారంభం స్థానం. ప్రత్యక్షంగా నిర్ణయించబడనిది సంఖ్య నిర్ణయించబడితే అంతిమ స్థానం నుండి ప్రారంభించి అన్వేషిస్తుంది.

అంశం కనబడలేకపోయినప్పుడు,Array.indexOf() అంశం కనబడలేకపోయినప్పుడు -1 తిరిగి ఇస్తుంది.

అంశం బహుళార్థం ఉన్నప్పుడు మొదటి స్థానాన్ని తిరిగి ఇస్తుంది.

Array.lastIndexOf()

Array.lastIndexOf() మరియు Array.indexOf() ఇదే విధంగా కానీ అంశం అంతిమ స్థానం నుండి ప్రారంభించి అన్వేషిస్తుంది.

ఇన్స్టాన్స్

నమూనాలు అంశం "Apple" ని అన్వేషించండి:

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

స్వయంగా ప్రయత్నించండి

అన్ని బ్రౌజర్లు మద్దతు ఇస్తాయి Array.lastIndexOf()ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ 8 లేదా అది ముంది వర్గంలో ఉన్న విండోస్ లో తప్ప:

అవును 9.0 అవును అవును అవును

సంకేతబద్ధం

array.lastIndexOf(అంశం, ప్రారంభం)
అంశం అవసరమైనది. తనిఖీ చేయవలసిన అంశం.
ప్రారంభం 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到开头。

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() 方法返回通过测试函数的第一个数组元素的索引。

ఈ ఉదాహరణ మీది విలువ పెద్దది అయిన మొదటి ఎలంజంట్ సూచికను కనుగొంటుంది:

ఇన్స్టాన్స్

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