我目前正在处理搜索API,其中对象的drive
值可以是automatic
或manual
。
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
轻松完成,但有一个问题。如果存在搜索结果返回集合的情况,其中没有任何对象具有值automatic
,我想要保存manual
对象的集合。
答案 0 :(得分:2)
只需进行过滤并检查空集:
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;