Warning: JavaScript 1.6's for-each-in loops are deprecated - JavaScript 编辑
消息
警告: JavaScript 1.6's 版本的for-each-in遍历不再赞成使用; 建议用 ES6的 for-of 替换
错误类型
警告
出了什么问题?
JavaScript 1.6's for each (variable in obj)
语法不赞成使用, 将在未来版本移除它。
实例
遍历对象
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
}
也可以使用{jsxref("Statements/for...of", "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
}
遍历一个空数组
for each...in
如果指定值是 null
o或 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...of
重写for each...in
后值可以为 null
和 undefined
,同时你需要警惕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
}
也可以使用{jsxref("Statements/for...of", "for...of")}} (ES2015) 和 Object.values
(ES2017), 你可以获取指定对象的值得数组然后像这样遍历它:
var object = { a: 10, b: 20 };
for (var [key, value] of Object.entries(object)) {
console.log(key, value); // "a", 10
// "b", 20
}
参见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论