У меня есть arrayList (selectedSources) с такими элементами:
this.selectedSources.push(
{ id: 0, text: "A" },
{ id: 1, text: "B" },
{ id: 2, text: "C" },
{ id: 3, text: "D"}
);
Пользователь может выбрать любой или все эти элементы. Когда пользователь выбирает элементы, мне нужно динамически переместить комбинацию этих элементов в другой список массивов.
В данный момент я делаю это с if/else
заявлениями. Есть ли способ сделать это динамически?
ниже мой код:
if (
this.selectedSources.some(x => x.Value === "B") &&
this.selectedSources.some(x => x.Value === "C")
) {
if (this.formulalist != undefined) {
//this.formulalist.length = 0;
this.formulalist = [];
}
this.formulalist.push({
Value: "B - C",
Name: "B - C",
IsVisible: true,
UpdateFlag: "A",
Market: "",
FormulaType: "diff",
FormulaSet1: "1",
FormulaSet2: "3",
checked: null
});
this.formulalist.push({
Value: "% B - C",
Name: "% B - C",
IsVisible: true,
UpdateFlag: "A",
Market: "",
FormulaType: "percent",
FormulaSet1: "1",
FormulaSet2: "3",
checked: null
});
else if (
this.selectedSources.some(x => x.Value === "B") &&
this.selectedSources.some(x => x.Value === "D")
) {
if (this.formulalist != undefined) {
//this.formulalist.length = 0;
this.formulalist = [];
}
this.formulalist.push({
Value: "B - D",
Name: "B - D",
IsVisible: true,
UpdateFlag: "A",
Market: "",
FormulaType: "percent",
FormulaSet1: "1",
FormulaSet2: "4",
checked: null
});
this.formulalist.push({
Value: "% B - D",
Name: "% B - D",
IsVisible: true,
UpdateFlag: "A",
Market: "",
FormulaType: "percent",
FormulaSet1: "1",
FormulaSet2: "4",
checked: null
});
............
............
Если пользователь выбирает B и C, тогда мне нужно нажать комбинацию этих пунктов. Например: (B - C)
и % B - C
.
Как мы можем сделать это динамически, не используя жестко закодированные значения, но используя выбор пользователя в угловых 4
selectedSources
имеет выбранный пользователем список.
, если пользователь выбирает B,A,C
, мне нужно отправить эти элементы в другой список массивов.
A - C, % A - C, A - B, % A - B, B - C, % B - C