Получить массив ввода и вывода строки - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть некоторый код, который работает, но мне было бы интересно, если бы кто-нибудь мог просмотреть его и сказать, есть ли более эффективный способ достижения моей цели.

Я получаю информацию от источника данных как массив, такой как ["Y", "Y" ,, "Y", "Y" ,, "Y"].

Значения относятся к именам инвестиционных фондов, и я вывожу строку типа " Сбалансированный, Ca sh, параметры High Growth, Moderate и Growth ".

Если есть только одно значение, заполненное" Y ", строка может быть" Conservative option ".

Если есть два значения, строка может быть «Опции консервативного и Ca sh».

Для более чем двух значений строка может быть «Опции консервативного, Ca sh и Moderate».

Я знаю, что порядок значений всегда будет одинаковым, например, первое значение всегда будет сбалансированным. Вот код:

// balanced, cash, high growth, moderate and growth
var params = ["Y","Y",,"Y","Y",,"Y"];

getString(params)

function getString(values) {

// map for the values
var fundMap = {
    0: "Balanced",
    1: "Cash",
    2: "Conservative",
    3: "High Growth",
    4: "Moderate",
    5: "Shares",
    6: "Growth"
    }

var fundArray = [];

// get fund names from map and push to array
for (var i = 0; i < values.length; i++) {
    if (values[i] == "Y") {
        fundArray.push(fundMap[i]);
    }
}
console.log(fundArray);

var fundString = "";

if (fundArray.length == 1) {

    fundString = fundArray + " option";

}
 else if (fundArray.length == 2) {

    fundString = fundArray[0] + " and " + fundArray[1] + " options";
}

 else  {

    for (var i = 0; i < fundArray.length -2; i++) {
        fundString = fundString + fundArray[i] +  ", ";
    }

    fundString = fundString + fundArray[fundArray.length -2] + " and ";
    fundString = fundString + fundArray[fundArray.length -1] + " options";
}
console.log(fundString);
}

Я хотел бы знать, если есть более эффективный или более аккуратный способ написания этого кода, пожалуйста.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...