首页 > 解决方案 > 检测对象的某个属性的值为空

问题描述

我有一个包含 100 个对象的列表。当对象的属性值为 null 时,我想删除整个对象。现在 if 语句不正确,我该如何解决这个问题?

目的:

{ id: 'blockstack-iou',
  name: 'Blockstack (IOU)',
  symbol: 'stx',
  image: 'missing_large.png',
  market_cap_usd: 174267825,
  market_cap_change_percentage: null,
  market_cap_relative_market_cap_percentage: 0 }

代码:

for (let i = 0; i < 100 ; i++) {

   // console.log(object[i]);
    console.log(Object.values(object[i]));
    //TODO: if one property value of the data is null delete object
    if (Object.values(object[i]) == null) {
        console.log("Null detected and object deleted");
        delete object[i];
    }
}

console.log(Object.values(object[i]))的输出;

[ 'blockstack-iou',
  'Blockstack (IOU)',
  'stx',
  'missing_large.png',
  174267825,
  null,
  0 ]

标签: javascript

解决方案


您可以filter()在原始数组上使用以返回Object.values(object[i])包含的 null项目。

const object = [
  {p1: 1, p2: 1},
  {p1: 2, p2: null},
  {p1: 3, p2: null},
  {p1: 4, p2: 4}
];

const result = object.filter(o => !Object.values(o).includes(null));
console.log(result);


推荐阅读