これは純粋に演習ですが、次のコードが与えられます。
var someCondition = (....);
var res = [];
if (someCondition) {
res.push("A");
}
res.push("B");
if (someCondition) {
res.push("C")
}
return res;
リストを表現するためのより「機能的な」方法は何でしょうか?
私は次のようなものになる可能性があります(JSでは、underscorejsを減らし、基本的には折り畳みます)
_.reduce(["A", "B", "C"], function (memo, value, index) {
if (index === 0 || index === 2) {
if (someCondition) {
memo.push(value);
}
} else {
memo.push(value);
}
}, []);
またはフィルターを使用して:
_.filter(["A", "B", "C"], function (value, index) {
if (index === 0 || index === 2) {
return someCondition;
} else {
return true;
}
});
さて、これは少し醜いように聞こえます...ここで明らかな解決策がありませんか?