ES6中的条件对象分配

时间:2016-12-19 09:21:07

标签: ecmascript-6

我可以按如下方式复制对象:

var myNew = Object.assign({}, old);

但是我该怎么做并删除旧的未定义属性?例如:

const old = {1:undefined, 2: "TWO"};
const myNew = {2:"TWO"};

1 个答案:

答案 0 :(得分:1)

您可以手动将其删除:delete old['1']

或者为无限数量的密钥创建一种方法。

var old = prune(old);

function prune(obj) {
  var newObj = Object.assign({}, old);
  for(var key in newObj) {
    if(newObj[key] === undefined) {
      delete newObj[key];
    }
  }
  return newObj;
}