当属性不相同时,过滤数组属性的值

时间:2017-10-16 17:46:06

标签: javascript arrays filter ecmascript-6

const myArray = [ { status: null }, { rooms: 2 }, { bathrooms: 3 }, { vaccum: null } ]

这是数组,我想过滤null的值,无论属性是什么,都要从数组中排除对象。

由于属性不一样,我不能去:

const filteredArray = myArray.filter(property => {
    property.status == null
})

1 个答案:

答案 0 :(得分:2)

您可以通过根据对象中的值进行过滤来实现此目的,不管是否null是否{/ 1}

const myArray = [{
  status: null
}, {
  rooms: 2
}, {
  bathrooms: 3
}, {
  vaccum: null
}];

let result = myArray.filter( o => {
  return !Object.values(o).includes(null)
});

console.log(result)

并非所有浏览器都支持

Object.values,但可以通过旧浏览器的简单循环轻松替换

const myArray = [{
  status: null
}, {
  rooms: 2
}, {
  bathrooms: 3
}, {
  vaccum: null
}];

var result = myArray.filter( o => {
  for (key in o) {
  	if ( o[key] === null ) return false;
  }
  return true
});

console.log(result)