不生成新数组的迭代器方法,
它们要么对于数组中的每个元素执行某种操作, 要么返回一个值。
1、 forEach(), 该方法接受一个函数作为参数, 对数组中的每个元素 使用该函数
nums数组里面的每个元素都会以形参的形式传入square()去执行 一次。
2、 every(), 该方法接受一个返回值为布尔类型的函数, 对数组中的每 个元素使用该函数。 如果对于所有的元素, 该函数均返回 true, 则该方法返回 true。
3、
some(),该
方法也接受一个返回值为布尔类型的函数, 只要有一个元素使得该函数返回
true,
该方法就返回
true。
4、
reduce() ,该方法接受一个函数, 返回一个值。
该方法会从一个累加值开始, 不断对累加值和1、 forEach(), 该方法接受一个函数作为参数, 对数组中的每个元素 使用该函数
<
script
type
=
"text/javascript"
>
function
square
(
num
)
{
document
.
write
(
num
*
num
+
"
\t
"
)
;
}
function
doEach
(
)
{
var
nums
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
]
;
nums
.
forEach
(
square
)
;
}
<
/script>
2、 every(), 该方法接受一个返回值为布尔类型的函数, 对数组中的每 个元素使用该函数。 如果对于所有的元素, 该函数均返回 true, 则该方法返回 true。
<
script
type
=
"text/javascript"
>
function
isEven
(
num
)
{
return
num
%
2
==
0
;
}
function
doEvery
(
)
{
var
nums
=
[
2
,
4
,
6
,
8
,
10
]
;
var
even
=
nums
.
every
(
isEven
)
;
if
(
even
)
{
alert
(
" all numbers are even"
)
;
}
else
{
alert
(
" not all numbers are even"
)
;
}
}
<
/script>
<
script
type
=
"text/javascript"
>
function
isEven
(
num
)
{
return
num
%
2
==
0
;
}
function
doSome
(
)
{
nums
=
[
1
,
3
,
5
,
7
,
9
]
;
someEven
=
nums
.
some
(
isEven
)
;
if
(
someEven
)
{
document
.
write
(
" some numbers are even"
)
;
}
else
{
document
.
write
(
" no numbers are even"
)
;
}
}
<
/script>
数组中的后续元素调用该函数, 直到数组中的最后一个元素, 最后返回得到的累加值。
<
script
type
=
"text/javascript"
>
function
add
(
runningTotal
,
currentValue
)
{
return
runningTotal
+
currentValue
;
}
function
doReduce
(
)
{
var
nums
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
]
;
var
sum
=
nums
.
reduce
(
add
)
;
document
.
write
(
sum
)
;
}
<
/script>
<
script
type
=
"text/javascript"
>
function
concat
(
accumulatedString
,
item
)
{
return
accumulatedString
+
item
;
}
function
doReduceRight
(
)
{
var
words
=
[
" the "
,
" quick "
,
" brown "
,
" fox "
]
;
var
sentence
=
words
.
reduceRight
(
concat
)
;
document
.
write
(
sentence
)
;
}
<
/script>