过滤Javascript数组并仅返回具有填充键的对象

过滤Javascript数组并仅返回具有填充键的对象,javascript,arrays,Javascript,Arrays,我在这里搜索了几个小时,到目前为止还没有找到正确的答案。如果答案已经出来了,我很抱歉 我试图过滤一个数组,只返回具有某个键和任意值的对象。值是否为无关紧要,只要该键不为空或null 阵列示例: [ { "title": "Song 1", "author": "Joe", "Album1": 2, "Album2": null, "Album3": 5 }, { "title": "Song 2", "author": "Jan

我在这里搜索了几个小时,到目前为止还没有找到正确的答案。如果答案已经出来了,我很抱歉

我试图过滤一个数组,只返回具有某个键和任意值的对象。值是否为无关紧要,只要该键不为空或null

阵列示例:

[
  {
    "title": "Song 1",
    "author": "Joe",
    "Album1": 2,
    "Album2": null,
    "Album3": 5
  },
  {
    "title": "Song 2",
    "author": "Jane",
    "Album1": null,
    "Album2": null,
    "Album3": 8
  },
  {
    "title": "Song 3",
    "author": "Steve",
    "Album1": 10,
    "Album2": 1,
    "Album3": null
  }
]
我只想返回在
Album1
中有值的对象(该值将是曲目)。我不在乎价值是什么,只要有价值就行。因此,在本例中,仅将以下内容返回到新数组:

[
  {
    "title": "Song 1",
    "author": "Joe",
    "Album1": 2,
    "Album2": null,
    "Album3": 5
  },
  {
    "title": "Song 3",
    "author": "Steve",
    "Album1": 10,
    "Album2": null,
    "Album3": null
  }
]
我试过几种不同的方法,每种都失败了。这是一个似乎应该有效,但却无法实现的方案:

getFilteredSongs (array, album) {
  return songs
    .filter(function (obj) {
      return Object.keys(album).every(function (a) {
        return obj[a] === true
      })
    })
  }

getFilteredSongs(songsList, Album1)

我非常感谢任何帮助,以及对我的绿色技能的耐心,以及无法找到一个似乎应该存在的问题

您只需返回
Album1
属性-如果
null
,结果数组将不包括在结果中:

const歌曲=[
{
“标题”:“歌曲1”,
“作者”:“乔”,
“专辑1”:2,
“Album2”:空,
“专辑3”:5
},
{
“标题”:“歌曲2”,
“作者”:“简”,
“Album1”:空,
“Album2”:空,
“专辑3”:8
},
{
“标题”:“第三首歌”,
“作者”:“史蒂夫”,
专辑1:10,
“专辑2”:1,
“Album3”:空
}
];
const filtered=songs.filter({Album1})=>Album1);

console.log(过滤)以下内容将消除任何具有空值的相册

filteredSongs = songs.filter((cur) => cur.Album1 !== null);

如果
Album1
可能是除
undefined
/
null
(例如
0
)之外的错误值,您可以只检查
undefined
/
null
,如下所示:

const歌曲=[
{
“标题”:“歌曲1”,
“作者”:“乔”,
“专辑1”:2,
“Album2”:空,
“专辑3”:5
},
{
“标题”:“歌曲2”,
“作者”:“简”,
“Album1”:空,
“Album2”:空,
“专辑3”:8
},
{
“标题”:“第三首歌”,
“作者”:“史蒂夫”,
专辑1:10,
“专辑2”:1,
“Album3”:空
}
];
const filteredSongs=songs.filter({Album1})=>Album1!=null);//仅过滤出未定义/空值

console.log(过滤歌曲)
没有任何值时,键所取的值是多少
。可以安全地假设它将
null
?谢谢。第二个选择让我走上了我需要的道路。非常感谢。不知道为什么我在搜索中找不到:(。