对于object.keys(),我在文档中看到这么一段解释:Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
总结下来就这么一句话:object.keys(obj) 得到对象本身所有属性名的数组
下面这段代码我是从官网上扒下来的
// simple array
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']
// array like object
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']
// array like object with random key ordering
var anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // console: ['2', '7', '100']
// getFoo is a property which isn't enumerable
var myObj = Object.create({}, {
getFoo: {
value: function () { return this.foo; }
}
});
myObj.foo = 1;
console.log(Object.keys(myObj)); // console: ['foo']
至于我为啥写这篇博客是因为看到项目中的这段代码
//获得searchParams身上的属性并遍历循环,如果属性值为空,就删除这个属性
Object.keys(searchParams).forEach(key=>{
if(searchParams[key]===''){
delete searchParams[key]
}
}
//下面这段代码只是辅佐上面代码的理解
searchParams:{
category1Id:'',
category2Id:'',
category3Id:'',
categoryName:'',
keyword:'',
trademark:'',
props:[],
order:'2:desc',
pageNo:1,
pageSize:5
}
网友评论