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-07 20:46:31 浏览: 79
这段代码中,`includes()` 函数没有被定义。`includes()` 是数组的一个方法,但是在这里却被用在了一个对象上。你可以使用 `Object.keys()` 方法获取对象的所有属性,然后遍历这些属性,删除不需要的属性。
以下是修改后的代码:
```javascript
function pick(obj, keys) {
Object.keys(obj).forEach(function(key) {
if (keys.includes(key)) {
delete obj[key];
}
});
}
var obj = {
a: 1,
b: 2,
c: 3
};
pick(obj, ['a', 'b']);
console.log(obj);
```
这段代码会输出 `{ c: 3 }`,表示已经成功删除了 `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}`。
阅读全文