function pick(obj, keys) { for(var key in obj){ if(includes(keys,key)){ delete obj[key] } } } var obj = { a : 1, b : 2, c : 3 } pick(obj,['a','b']) console.log(obj);有错嘛
时间: 2024-03-06 08:51:30 浏览: 55
这段代码有一个错误,即`includes()`方法未定义。JavaScript中没有名为`includes()`的全局函数,只有在数组和字符串上才有该方法。因此,需要将`includes()`方法替换为`Array.prototype.includes.call()`或`keys.includes()`,以便在函数内部调用该方法。
修改后的代码如下所示:
```
function pick(obj, keys) {
for (var key in obj) {
if (Array.prototype.includes.call(keys, key)) {
delete obj[key];
}
}
}
var obj = {
a: 1,
b: 2,
c: 3
};
pick(obj, ['a', 'b']);
console.log(obj);
```
在此代码中,我们使用`Array.prototype.includes.call()`方法替代了`includes()`方法,将`keys`数组作为参数传递给了该方法。另外,我们还将函数调用语句中的`pick(obj,['a','b'])`改为了`pick(obj, ['a', 'b'])`,以便添加空格,使代码更易读。
相关问题
function pick(obj, keys) { for(var key in obj){ if(includes(keys,key)){ delete obj[key] } } } var obj = { a : 1, b : 2, c : 3 } pick(obj,['a','b']) console.log(obj);
这段代码的作用是从一个对象中删除指定的键(key)。
具体来说,`pick()`函数接受两个参数,第一个参数是待操作的对象,第二个参数是一个数组,包含了需要删除的键。函数内部使用`for...in`循环遍历对象的所有键,判断当前键是否在需要删除的键的数组中。如果是,则使用`delete`操作符删除该键,从而实现删除指定键的功能。
例如,对于给定的对象`{a:1,b:2,c:3}`,调用`pick(obj,['a','b'])`函数后,会删除对象中的`a`和`b`键,最终输出的结果为`{c:3}`。
阅读全文