JavaScript Array values()

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')。


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战