Object 常用方法
Object.entries()
- Object.entries(value : any) : Array<[string,any]>
- Object.entries()最后为我们提供了一种迭代对象属性的方法
let obj = { one: 1, two: 2 }
for (let [k, v] of Object.entries(obj)) { console.log(k, v)
} //one 1 // two 2
- 通过map Object.entries()
let map = new Map(Object.entries(obj)) console.log(JSON.stringify([...map]))
// [["one",1],["two",2]]
Object.values()
console.log(Object.values(obj)) // [ 1, 2 ]
Object.keys()
遍历对象,返回一个数组,包含了该对象自身的所有可枚举属性名
let obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // ['0', '1', '2']
let obj = { firstName: 'a', lastName: 'b' };
console.log(Object.keys(obj)); // ['firstName', 'lastName']
Object.assign()
用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
注意点:
- 对象合并是指:将源对象sources里面的属性添加到目标对象target中去,若两者的属性名有冲突,后面的将会覆盖前面的
var obj1 = {
a: 1,
b: 2
};
var obj2 = {
b: 4,
c: 5
};
var newObj = Object.assign({}, obj1, obj2);
console.log(newObj) // {a: 1, b: 4, c: 5}
判断是否是一个对象
- react-redux中的方法
export default function isObject(obj) {
if (typeof obj !== 'object' || obj === null) return false
let proto = Object.getPrototypeOf(obj)
if (proto === null) return true
let baseProto = proto
while (Object.getPrototypeOf(baseProto) !== null) {
baseProto = Object.getPrototypeOf(baseProto)
}
return proto === baseProto
}