使用 Javascript 有条件地过滤对象数组

Conditionally filtering an array of objects using Javascript

我目前正在处理搜索 API,其中对象的 drive 值可能是 automaticmanual

var mixedResults = [{model: "328", drive: "automatic"}, {model: "328", drive: "manual"}, {model: "M4", drive: "automatic"}, {model: "M4", drive: "manual"}];

var linearResults = [{model: "328", drive: "manual"}, {model: "M3", drive: "manual"}];

我想做的是过滤所有具有 automatic 的对象,将这些对象保存到一个变量中,并排除所有其他对象。

这可以使用 filter 轻松完成,但有一个问题。如果存在搜索结果 returns 一个集合,其中 none 个对象的值为 automatic 我想保存 manual 个对象的集合。

只需进行过滤并检查空集:

var mixedResults = [{model: "328", drive: "automatic"}, {model: "328", drive: "manual"}, {model: "M4", drive: "automatic"}, {model: "M4", drive: "manual"}];

var results = mixedResults.filter(function (x) {
  return x.drive === "automatic";
});

if (results.length === 0)
  results = mixedResults;