pickExclude(obj, keys) { if (!['[object Object]', '[object File]'].includes(Object.prototype.toString.call(obj))) { return {} } return Object.keys(obj).reduce((prev, key) => { if (!keys.includes(key)) { prev[key] = obj[key] } return prev }, {}) },
时间: 2023-12-06 16:45:03 浏览: 76
这是一个函数,功能是从一个对象中排除指定的键(keys)并返回一个新的对象。具体来说,它会接受两个参数:obj和keys。如果obj不是一个对象或者文件,那么函数会返回一个空对象。否则,函数会使用reduce方法遍历obj的所有键,如果这个键不在keys数组中,那么就将它添加到新的对象中。最后,函数返回这个新对象。
举个例子,如果我们有一个对象:
```
const obj = {
name: 'Alice',
age: 25,
email: 'alice@example.com'
}
```
如果我们想要排除name和age这两个键,那么我们可以这样调用这个函数:
```
const excluded = pickExclude(obj, ['name', 'age'])
console.log(excluded) // { email: 'alice@example.com' }
```
这样就会返回一个只包含email键的新对象。
相关问题
Object.prototype.toString和 Object.prototype.toString.call
Object.prototype.toString是JavaScript中的一个方法,用于返回一个表示对象的字符串。它的主要作用是获取对象的类型信息。
而Object.prototype.toString.call是通过调用Object.prototype.toString方法,并将其作为函数来调用,可以用来获取任意值的类型信息。
例如,我们可以使用Object.prototype.toString.call来获取一个变量的类型信息,如下所示:
```javascript
const obj = {};
const arr = [];
const str = "Hello";
const num = 123;
const bool = true;
console.log(Object.prototype.toString.call(obj)); // [object Object]
console.log(Object.prototype.toString.call(arr)); // [object Array]
console.log(Object.prototype.toString.call(str)); // [object String]
console.log(Object.prototype.toString.call(num)); // [object Number]
console.log(Object.prototype.toString.call(bool)); // [object Boolean]
```
通过调用Object.prototype.toString.call并传入不同的值,我们可以获取到对应值的类型信息。
object.prototype.tostring.call(obj) === '[object array]
object.prototype.toString.call(obj) === '[object Array]' 是用来判断一个对象是否为数组的一种常用方法。在这个表达式中,object是Object.prototype的一个实例,而tostring是Object.prototype的一个方法,call(obj)表示将这个方法应用于一个特定的对象obj上。
在JavaScript中,Object.prototype.toString.call()方法返回一个对象的内部属性[[class]]的字符串表示。
当obj为一个数组时,[object Array]会被返回。
举个例子,var arr = [1, 2, 3];
Object.prototype.toString.call(arr) === '[object Array]' 的返回值为true,因为arr是一个数组。
如果将这个方法应用于其他类型的对象,比如字符串、数字等,则会返回对应的类型字符串。
例如:
var str = 'hello';
Object.prototype.toString.call(str) === '[object String]' 的返回值为true,因为str是一个字符串。
在JavaScript中,使用Object.prototype.toString.call(obj)来判断一个对象的类型是一种广泛使用的方法,因为它可以准确地返回对象的类型字符串。对于判断数组,使用 '[object Array]' 来判断是非常常见的用法。
阅读全文