Object.keys()的用法:
1.遍历对象(必须包含属性和方法的对象);
2.返回对象中每一项key的数组(遍历一个对象,返回一个全是key的数组)
eg1:如果对象是一个对象,会返回对象的属性名组成的数组;
let obj = { 数据泄露: 5412, 数据传输: 3921, 数据篡改: 851392, 数据滥用: 59532 };
console.log(Object.keys(obj)); //['数据泄露', '数据传输', '数据篡改', '数据滥用']
eg2:如果对象是一个对象,则返回数据的键值;
let arr = ['数据泄露', '数据传输', '数据篡改', '数据滥用'];
console.log(Object.keys(arr)); //['0', '1', '2', '3']
eg3:使用Object.keys()还可以判断一个对象是否为空!
1.判断对象为空,方法一
var obj = {};
if (Object.keys(obj).length === 0) {
console.log('空对象');
}
2.判断对象为空,方法二
var obj = {};
var b =(JSON.stringify(obj ) == "{}");
console.log('b');//true
eg4:在什么时候使用??? 一般我们后端返回一个含有键值对的对象不是我们需要的,我们要把他们键值对取出来重新组成数组来使用,或者是只需要用到他的键,不需要用到他的值,这时就可以用此方法。
let arrShowReq = [];
let obj = { 数据泄露: 5412, 数据传输: 3921, 数据篡改: 851392, 数据滥用: 59532 };
Object.keys(obj).map(key => {
arrShowReq.push({
title: key,
count: obj[key],
});
});
console.log(arrShowReq);
// [
{title: '数据泄露', count: 5412},
{title: '数据传输', count: 3921},
{title: '数据篡改', count: 851392},
{title: '数据滥用', count: 59532}
]
var obj1 = { name: 'a', list: { a: 'value1', b: 'value2' }, age: 13 };
Object.keys(obj1).forEach(function(key) {
console.log(key, obj1[key]);
});
// name a
// list { a: 'value1', b: 'value2' }
// age 13