zhuanghaixin / Interview

8 stars 0 forks source link

[js]封装一个函数,将传入的对象的属性值为五种基本数据类型的数据保存到一个新对象中并返回 #141

Open zhuanghaixin opened 3 years ago

zhuanghaixin commented 3 years ago
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
封装一个函数,将传入的对象的属性值为五种基本数据类型的数据保存到一个新对象中并返回
<script>
// typeof null 判断不了
// instanceof 判断不了基本数据类型
// Object.prototype.toString.call( ) 可以判断
function fn(obj) {
    let newObj = {}
    Object.entries(obj).forEach((item) => {
        console.log('item')
        console.log(item)
        if (isPrimitive(item[1])) {
           newObj[item[0]]=item[1]
        }
    })
    return newObj
}

// 判断是否为基本类型的函数
function isPrimitive(type) {
    return type !== Object(type);
}

const obj=fn({
    'key1': 1,
    'key2': 'a',
    'key3': false,
    'key4': null,
    'key5': undefined,
    'key6':Symbol('a'),
    'key7':1n,
    'key8':[],
    'key9':{}
})
console.log(obj)
</script>
</body>
</html>