使用 Javascript 有条件地过滤对象数组
Conditionally filtering an array of objects using Javascript
我目前正在处理搜索 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
轻松完成,但有一个问题。如果存在搜索结果 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;
我目前正在处理搜索 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
轻松完成,但有一个问题。如果存在搜索结果 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;