#javascript #arrays #string #merge
#javascript #массивы #строка #слияние
Вопрос:
Я уверен, что у этого уже есть дубликат, но я не смог его найти, потому что понятия не имел, как сформулировать этот вопрос. В принципе, у меня есть массив JS. Пользователь может добавлять в него элементы из выпадающего меню. Затем этот массив передается в текстовую область. Пользователь может вводить одно и то же значение более одного раза. Если у них есть две одинаковые строки в массиве, я хотел бы удалить обе и заменить их на «2x string». Кроме того, если существуют «2x string» и «string», То они будут преобразованы в «3x string» и т. Д. И т. Д. Заранее спасибо за ответ. Я действительно ценю это. Я старался сделать его как можно более общим, чтобы другие люди с такой же проблемой тоже могли получить помощь от этого.
JS:
var newfish = 'foo';
var oldtextareacontent = 'foo';
var fish = new Array();
var fishformatted = new Array();
function addfish(){
//form is never submitted so as not to refresh page
oldtextareacontent = document.getElementById("stock").value;
newfish = document.getElementById("fish").options[document.getElementById("fish").selectedIndex].text;
fish.push(newfish);
fishformatted = fish.join("n");
document.getElementById("stock").innerHTML = "Your stock: amp;#10;amp;#10;" fishormatted;
}
Комментарии:
1. Возможно, лучший способ сохранить их не в виде массива измененных значений, а отслеживать количество. Например:
{"stringA": 2, "stringB": 9, "stringC": 1, ...}
, или[{value: "stringA", count: 2}, {value: "stringB", count: 9}, ...]
. Это зависит от того, как вы на самом деле взаимодействуете с ними. Таким образом, в HTML вы можете перебирать любую структуру данных, иметь исходное значение и добавлять что-то дополнительное, если количество больше 1. Преимущество использования предложенного мной массива заключается в сохранении отсортированного порядка. В любом случае, это обеспечивает простой способ найти, существует ли он, и обновить или создать2. Извините, я должен был уточнить немного больше. Элементы массива выбираются из списка с тысячами вариантов (все виды рыб).
3. Я добавил JS, который у меня есть до сих пор. Он извлекает данные из тега выбора html и печатает их в текстовой области
4. Как насчет 2 массивов? Один с дубликатами и один для просмотра пользователями