遍历对象的6种方法:1、“for...in”语句,可循环遍历对象自身的和继承的可枚举属性;2、keys()对属性名进行遍历,values()对属性值进行遍历;3、getownpropertynames(),可返回一个包含所有属性的数组等等。
本教程操作环境:windows7系统、ecmascript 6版、dell g3电脑。
es6遍历对象属性的6种方法
1、for...in
循环遍历对象自身的和继承的可枚举属性(不含symbol属性)
for (let k in obj) {}
循环遍历对象自身的和继承的可枚举属性 (循环遍历对象自身的和继承的可枚举属性(不含symbol属性)
let obj = {'0':'a','1':'b','2':'c'}for (let k in obj) { console.log(k+':'+obj[k])}//0:a//1:b//2:c
2、object.keys(obj)|| object.values(obj)
返回一个数组,包括对象自身的(不含继承)所有可枚举属性(不含symbol属性)
keys()是对属性名的遍历、values()是对属性值的遍历
let obj = {'0':'a','1':'b','2':'c'}console.log(object.keys(obj))//["0","1","2"]console.log(object.values(obj))//["a","b","c"]
3、object.getownpropertynames(obj)
返回一个数组包含对象自身的所有属性(不包含属性,但是包括不可枚举属性)
let obj = {'0':'a','1':'b','2':'c'};object.getownpropertynames(obj).foreach(function(key){ console.log(key,obj[key]);});// 0 a// 1 b// 2 c
4、object.getownpropertysymbols(obj)
返回一个数组,包含对象自身的所有symbol属性
示例:获取对象自有的symbol值属性
var obj = {};var a = symbol("a");var b = symbol.for("b");obj[a] = "localsymbol";obj[b] = "globalsymbol";var objectsymbols = object.getownpropertysymbols(obj);console.log(objectsymbols.length); // 2console.log(objectsymbols) // [symbol(a), symbol(b)]console.log(objectsymbols[0]) // symbol(a)
5、reflect.ownkeys(obj)
返回一个数组,包含对象自身的所有属性,不管属性名是symbol或字符串,也不管是否可枚举.
const object1 = { property1: 42, property2: 13};const array1 = [];console.log(reflect.ownkeys(object1));// expected output: array ["property1", "property2"]console.log(reflect.ownkeys(array1));// expected output: array ["length"]
6、reflect.enumerate(obj)
返回一个iterator对象,遍历对象自身的和继承的所有可枚举属性(不含symbol属性),与for ... in 循环相同.
var obj = { x: 1, y: 2 };for (var name of reflect.enumerate(obj)) { console.log(name);}// logs "x" and "y"
【相关推荐:javascript视频教程、web前端】
以上就是es6遍历对象的方法有哪些的详细内容。