values()
方法返回一个新的 Array Iterator 对象,该对象包含数组中每个索引的值。
示例
let languages = ["JavaScript", "Java", "C++"];
// returns an Array Iterator object that contain values
let iteratorObject = languages.values();
// looping through iterator
for (let value of iteratorObject) {
console.log(value);
}
// Output:
// JavaScript
// Java
// C++
values() 语法
values()
方法的语法是
arr.values()
这里,arr 是一个数组。
values() 参数
values()
方法不接受任何参数。
values() 返回值
- 返回一个新的
Array
迭代器对象。
注意:value()
方法不会更改原始数组。
示例 1:使用 values() 方法
let languages = ["A", "B", "C"];
// returns an iterator object that contain values of languages
let iteratorObject = languages.values();
// looping through iterator
for (let value of iteratorObject) {
console.log(value);
}
输出
A B C
在上面的示例中,我们使用 value()
方法来访问 languages 数组中每个索引的值。
我们调用该方法的方式是 languages.values()
,它返回一个数组迭代器对象,即 iteratorObject。
我们使用 for…of 循环遍历 iteratorObject,它会打印数组每个索引的值。
注意:我们也可以使用数组迭代器对象的 next().value
来访问值。下面的代码打印数组中的第一个值。
console.log(iteratorObject.next().value);
示例 2:在带有空位的数组中使用 values()
values()
方法不会忽略数组中的空位。对于数组中的空槽,它会返回 undefined
。
let arrayWithHole = ["A", "B", , "C"];
// returns 'undefined' as a value for empty slot
let iteratorObject = arrayWithHole.values();
// looping through iterator
for (let value of iteratorObject) {
console.log(value);
}
输出
A B undefined C
这里我们调用了在包含空位的数组上的 values()
方法。
由于 arrayWithHole
的第三个索引有一个空槽,因此该方法为该索引返回 undefined
作为值。
示例 3:关于 Array Iterator Object 的更多信息
数组迭代器对象不存储值,而是存储所用数组的地址。例如:
let fruits = ["Apple", "Banana", "Grapes"];
// returns values of each index in the fruits array
let iteratorObject = fruits.values();
// accessing the value of index 0 in the array
console.log(iteratorObject.next().value); // Apple
// changing the value of index 1
fruits[1] = "Cherry";
// accessing the value of index 1 in the array
console.log(iteratorObject.next().value); // Cherry
输出
Apple Cherry
在上面的示例中,我们更改了 fruits 数组索引 1 的值。
因此,在更改数组中的值时,iteratorObject 返回新值,即存储在索引 1 处的值('Cherry'
)。
另请阅读