js相关方法
- 包含es6、常用原生js方法等
对象转数组
- es6 对象遍历次序规则:
- 首先遍历所有数值键,按数值升序排列
- 其次遍历所有字符串键,按加入时间升序排列
- 最后遍历所有Symbol键,按加入时间升序排列
- es6 对象遍历方法:
- Object.keys()
- for...in...
- Object.getOwnPropertyNames()
- Object.getOwnPropertySymbols()
- Reflect.ownKeys()
Object.keys(obj)
- 遍历可枚举的属性,不包含继承,不包含Symbol
- 返回一个对象属性名称的数组
const obj = {key1: 'oo', 1: 'oo', b: 'oo'}
const arr = Object.keys(obj)
/**
控制台输出:
[
0: "1"
1: "key1"
2: "b"
length: 3
__proto__: Array(0)
]
*/
Object.values(obj)
- 遍历可枚举的属性,不包含继承,不包含Symbol
- 返回对象属性值的数组
const obj = {123: {k:4, l:'tt'}, 456: {k:42, l:'to'}, [Symbol('ss')]: 's1'}
const arr = Object.values(obj)
//控制台输出:
[
0: {k: 4, l: "tt"}
1: {k: 42, l: "to"}
length: 2
__proto__: Array(0)
]
Object.entries()
- 可枚举属性, 不包含继承, 不包含Symbol
- 返回对象[key, value]的数组
const obj = {a:'aa', s:2, m:3}
const arr = Object.entries(obj)
//控制台输出:
[
["a", "aa"]
["s", 2]
["m", 3]
length: 3
__proto__: Array(0)
]
通过遍历Object.keys(),获取对象value数组
- Object.keys() 返回数组,遍历数组的方法均可以
const obj = {a:1, b:2, c:3}
const keys = Object.keys(obj) //[a,b,c]
const objVals = keys.map(key => obj[key]) //[1, 2, 3]
for...in...遍历对象获取value数组
- 遍历自身和继承的可枚举属性,不包含Symbol
const obj = {a:1, b:2, c:3}
let objVals = []
for(const oo in obj){
objVals = [...objVals, obj[oo]]
}