Errors: For-each-in loops are deprecated
信息
Warning: JavaScript 1.6's for-each-in loops are deprecated; consider using ES6 for-of instead错误类型
Warning
什么地方出了错?
JavaScript 1.6's for each (variable in obj) statement is deprecated, and will be removed in the near future.
例子
对象迭代
for each...in 已被用来迭代指定的对象值。
弃用的语法
var object = { a: 10, b: 20 };
for each (var x in object) {
console.log(x); // 10
// 20
}可选的标准语法
您现在可以使用标准for...in循环遍历指定的对象键,并获取循环内的每个值:
var object = { a: 10, b: 20 };
for (var key in object) {
var x = object[key];
console.log(x); // 10
// 20
}或者,使用for...of(ES2015)和Object.values(ES2017),您可以获取指定对象值的数组,并像这样迭代数组:
var object = { a: 10, b: 20 };
for (var x of Object.values(object)) {
console.log(x); // 10
// 20
}数组迭代
for each...in 已经被用来遍历指定的数组元素。
弃用的语法
var array = [10, 20, 30];
for each (var x in array) {
console.log(x); // 10
// 20
// 30
}可选的标准语法
for...of(ES2015)循环现在也是可以的。
var array = [10, 20, 30];
for (var x of array) {
console.log(x); // 10
// 20
// 30
}遍历一个可以为null的数组
for each...in如果指定的值是null或undefined,for...of则不执行任何操作,但会在这些情况下抛出异常。
弃用的语法
function func(array) {
for each (var x in array) {
console.log(x);
}
}
func([10, 20]); // 10
// 20
func(null); // prints nothing
func(undefined); // prints nothing可选的标准语法
重写for each...in语句以使值可以null或者也可以undefined与之for...of相同,你需要警惕周围for...of。
function func(array) {
if (array) {
for (var x of array) {
console.log(x);
}
}
}
func([10, 20]); // 10
// 20
func(null); // prints nothing
func(undefined); // prints nothing迭代对象的键值对
弃用的语法
有一个不赞成的习惯用法迭代指定的对象的键值对使用for each...in和不赞成使用的Iterator对象。
var object = { a: 10, b: 20 };
for each (var [key, value] in Iterator(object)) {
console.log(key, value); // "a", 10
// "b", 20
}可选的标准语法
您现在可以使用标准for...in循环遍历指定的对象键,并获取循环内的每个值:
var object = { a: 10, b: 20 };
for (var key in object) {
var value = object[key];
console.log(key, value); // "a", 10
// "b", 20
}或者,使用for...of(ES2015)和Object.entries(ES2017),您可以获取指定对象值的数组,并像这样迭代数组:
var object = { a: 10, b: 20 };
for (var [key, value] of Object.entries(object)) {
console.log(key, value); // "a", 10
// "b", 20
}本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

