文章目录
一、对象的扩展1. 属性简洁表示法2. 属性名表达式3. Object.is()4. 扩展运算符 与 Object.assign()5. in6. 对象的遍历方式7. Objects.values()、 Objects.entries [ES8]8. Object.fromEntries【ES10】
一、对象的扩展
1. 属性简洁表示法
let name
= 'zhangsan'
let age
= 19
let people
= {
name
: name
,
age
: age
}
let people
= {
name
,
age
}
console
.log(people
)
2. 属性名表达式
let name
= 'zhangsan'
let age
= 19
let s
= 'school'
let people
= {
name
,
age
,
[s
]: '清华'
}
console
.log(people
)
let name
= 'zhangsan'
let age
= 19
let people
= {
name
,
age
,
study
: function(){
console
.log(this.name
)
}
study(){
console
.log(this.name
)
}
study
: () => {
console
.log(this.name
)
}
}
people
.study()
3. Object.is()
console
.log(Object
.is(2, '2'))
console
.log(Object
.is(NaN, NaN))
console
.log(Object
.is(+0, -0))
let obj1
= {
name
: 'zhangsan',
age
: 15
}
let obj2
= {
name
: 'zhangsan',
age
: 15
}
console
.log(obj1
== obj2
)
Object
.is(obj1
, obj2
)
4. 扩展运算符 与 Object.assign()
let x
= {
a
: 3,
b
: 4
}
let y
= {...x
}
console
.log(y
)
let y
= {}
Object
.assign(y
, x
)
5. in
let x
= {
a
: 3,
b
: 4
}
console
.log('a' in x
)
let arr
= [1, 2, 3]
console
.log(3 in arr
)
6. 对象的遍历方式
let obj
= {
name
: 'zhangsan',
age
: 15
}
for (let key
in obj
) {
console
.log(key
, obj
[key
])
}
Object
.keys(obj
).forEach(key
=> {
console
.log(key
, obj
[key
])
})
Object
.getOwnPropertyNames(obj
).forEach(key
=> {
console
.log(key
, obj
[key
])
})
Reflect
.ownKeys(obj
).forEach(key
=> {
console
.log(key
, obj
[key
])
})
7. Objects.values()、 Objects.entries [ES8]
const obj
= {
name
: 'zhangsan',
age
: 12,
school
: '清华'
}
const res
= Object
.keys(obj
).map( key
=> obj
[key
])
console
.log(res
)
const res
= Object
.values(obj
)
console
.log(res
)
for(let [key
, value
] of Object
.entries(obj
)) {
console
.log(`${key}: ${value}`)
}
console
.log(Object
.entries(['a','b']))
8. Object.fromEntries【ES10】
Object.fromEntries实现了与Object.entries相反的操作。
const obj1
= {
name
: 'zhangsan',
age
: 18,
}
const entries
= Object
.entries(obj1
)
console
.log(entries
)
const fromEntries
= Object
.fromEntries(entries
)
console
.log(fromEntries
)
const map
= new Map()
map
.set('name', 'zhangsan')
map
.set('age', 20)
console
.log(map
)
const fromEntries
= Object
.fromEntries(map
)
console
.log(fromEntries
)
const course
= {
math
: 67,
chinese
: 80,
english
: 50
}
const res
= Object
.entries(course
).filter(([key
, value
]) => value
> 60)
const obj
= Object
.fromEntries(res
);
console
.log(obj
)