在打字稿中删除 JSON 对象数组中的属性

时间:2021-01-20 10:53:26

标签: javascript json typescript

我有一组数据。我想要做的是从它为空的对象中删除该属性,就像我想删除 img 属性的第三个对象一样。到目前为止我尝试过的是

var data = [{
    id: 1,
    name: 'name1',
    img: 'car1'
  },
  {
    id: 2,
    name: 'name2',
    img: 'car2'
  },
  {
    id: 3,
    name: 'name3',
    img: null
  }
]
data.forEach(function(value) {
  for (var key in value) {
    if (value.hasOwnProperty(key)) {
      var val = value[key];
      if (val == null) {
        delete data[value[key]];
      }
    }
  }
});

console.log(data);

但是删除没有发生,知道我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

var data = [{
    id: 1,
    name: 'name1',
    img: 'car1'
  },
  {
    id: 2,
    name: 'name2',
    img: 'car2'
  },
  {
    id: 3,
    name: 'name3',
    img: null
  }
]

data.forEach(d => {
  Object.keys(d).forEach(key => {
    if (d[key] == null) delete d[key];
  });
});

console.log(data);