首页 > 试题广场 >

以下哪些对象是Javascript内置的可迭代对象?

[不定项选择题]
以下哪些对象是Javascript内置的可迭代对象?
  • Array
  • Map
  • String
  • Object
ES6 规定,默认的 Iterator 接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”(iterable)。

原生具备 Iterator 接口的数据结构如下。

  • Array
  • Map
  • Set
  • String
  • TypedArray
  • 函数的 arguments 对象
  • NodeList 对象


发表于 2019-10-19 10:08:20 回复(3)
B
发表于 2019-01-26 10:55:07 回复(0)
没有好好审题
JavaScript的可迭代对象
1)数组Arrays

console.log([][Symbol.iterator])
 
for(let x of ['a','b'])
    console.log(x)

2)字符串Strings
console.log(""[Symbol.iterator])
for(let x of "abc")
    console.log(x)

3)Map
let map = new Map().set('a', 1).set('b', 2);
console.log(map[Symbol.iterator]);
for (let pair of map) {
    console.log(pair);
}

4)Set
let set = new Set().add('a').add('b');
for (let x of set) {
    console.log(x);
}


5)arguments
function printArgs() {
    for (let x of arguments) {
        console.log(x);
    }
}
printArgs('a', 'b');

6)Typed Arrays

7)Generators,ES6新增加


发表于 2019-08-21 15:14:39 回复(4)
发表于 2020-02-17 17:31:06 回复(0)
将网上搜到的解释简单总结就是:
Object的原型没有实现Symbol.iterator所以不算做可迭代对象。Object的属性是没有先后顺序的,要开发者自己指定遍历顺序,这是没有内置Iterator的原因之一。另外就是es6的map已经满足了需要迭代Object的场景,不需要再给Object实现该方法。
发表于 2021-06-21 16:11:32 回复(0)
JavaScript的可迭代对象
1)数组Arrays

console.log([][Symbol.iterator])
 
for(let x of ['a','b'])
    console.log(x)

2)字符串Strings
console.log(""[Symbol.iterator])
for(let x of "abc")
    console.log(x)

3)Map
let map = new Map().set('a', 1).set('b', 2);
console.log(map[Symbol.iterator]);
for (let pair of map) {
    console.log(pair);
}

4)Set
let set = new Set().add('a').add('b');
for (let x of set) {
    console.log(x);
}


5)arguments
function printArgs() {
    for (let x of arguments) {
        console.log(x);
    }
}
printArgs('a', 'b');

6)Typed Arrays

7)Generators,ES6新增加

发表于 2019-08-18 10:13:54 回复(0)
js内置的可迭代对象:
  • Array
  • Map
  • Set
  • String
  • TypedArray
  • 函数的 arguments 对象
  • NodeList 对象
发表于 2021-05-27 22:32:00 回复(0)
能用for-of遍历的就可以,我以为string是原始值就没选
发表于 2022-05-16 10:02:49 回复(0)
JavaScript的可迭代对象 1)数组Arrays console.log([][Symbol.iterator])   for(let x of ['a','b'])     console.log(x) 2)字符串Strings console.log(""[Symbol.iterator]) for(let x of "abc")     console.log(x) 3)Map let map = new Map().set('a', 1).set('b', 2); console.log(map[Symbol.iterator]); for (let pair of map) {     console.log(pair); } 4)Set let set = new Set().add('a').add('b'); for (let x of set) {     console.log(x); } 5)arguments function printArgs() {     for (let x of arguments) {         console.log(x);     } } printArgs('a', 'b'); 6)Typed Arrays 7)Generators,ES6新增加
发表于 2021-02-05 15:48:11 回复(0)
<p>相当于可枚举,那么就有Array,Map,Set,string,如果想让对象也拥有可以枚举,类数组可以设置symbol接口是数组的接口,普通对象可以用generator设置</p><p><br></p>
发表于 2020-05-10 22:02:54 回复(0)
js内置的可迭代对象: Array,Map,Set,String,TypedArray,函数的 arguments 对象,NodeList 对象。Object的原型没有实现Symbol.iterator所以不算做可迭代对象。Object的属性是没有先后顺序的,要开发者自己指定遍历顺序,这是没有内置Iterator的原因之一。另外就是es6的map已经满足了需要迭代Object的场景,不需要再给Object实现该方法。
发表于 2023-04-10 14:18:04 回复(0)
ES6 规定,默认的 Iterator 接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”(iterable)。

原生具备 Iterator 接口的数据结构如下。

  • Array
  • Map
  • Set
  • String
  • TypedArray
  • 函数的 arguments 对象
  • NodeList 对象
直接原因是在Object.prototype上没有实现 [Symbol.iterator]() 方法
编辑于 2022-07-19 23:50:28 回复(0)
数组Array
字符串String
Map
Set
arguments
Typed Arrays
Generators,ES6新增加
发表于 2022-05-15 14:56:09 回复(0)
没注意直接填了前俩
发表于 2021-03-30 03:35:39 回复(0)
String Array TypedArray Map Set
编辑于 2021-03-19 12:02:01 回复(0)
<p>能够使用 for of 遍历的对象</p>
发表于 2020-10-05 21:03:19 回复(0)
谁能解释下可迭代是什么意思么?Object为啥不可以?既然可以用for...in遍历他,为啥就不算?
发表于 2020-03-08 21:35:59 回复(3)
可迭代对象:可以通过迭代器访问的对象?
发表于 2019-10-17 18:04:04 回复(0)