javascript - 如何获得与数组相同的结果但没有第三个括号?

标签 javascript arrays

我有一个从对象中删除元素的函数,如下所示:

 var remove = function(obj, props) {
   for(var i = 0; i < props.length; i++) { 
       if(obj.hasOwnProperty(props[i])) { 
           delete obj[props[i]]; 
       }; 
   }; 
 };

让我们考虑一个带有某些元素的对象:

 var obj = {
   one: "I am One",
   two: "I am Two"
 };

因此,要从对象“obj”中删除“一个”和“两个”元素,我必须调用以下代码:

 remove( obj, ["one", "two"]);

我必须使用第三个括号 ([]) 才能编写元素,但我希望代码编写如下:

 remove( obj, "one", "two" ); 

没有第三个括号。但我不明白在哪里更新代码才能获得像上面给出的示例那样的结果,以便它支持旧浏览器。你能帮我吗 ?提前致谢

最佳答案

使用Spread syntax : var remove = function(obj, ...props)

var remove = function(obj, ...props) {
  console.log(props); // ["two", "three"]
  for (var i = 0; i < props.length; i++) {
    if (obj.hasOwnProperty(props[i])) {
      delete obj[props[i]];
    }
  }
};

var obj = {
  one: "I am One",
  two: "I am Two"
};

remove(obj, "two", "three");

console.log(obj);

关于javascript - 如何获得与数组相同的结果但没有第三个括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58065224/

相关文章:

javascript - Ionic 3 多页面功能模块

c++ - 从所有类访问对象数组

arrays - 将字典值附加到 Swift 中的数组

c++ - 二维数组为函数参数时,这两种写法有什么区别?

javascript - 我需要澄清一下当我使用传播运算符时会发生什么

java - 尝试克隆数组时出现 ArrayIndexOutOfBoundsExcetion

javascript - 在 html 标签内调用 Javascript 变量

javascript - JQuery Mobile 数据角色不适用于 div

javascript - Vue 计算属性未在更新其 react 性依赖项时更新

php - 显示登录 JS 弹出窗口以进行身份​​验证所需的操作