Разделенная строка JavaScript выделенный текст удалить

Как удалить фрагментированный текст из строки с помощью JavaScript

Пример строки:

var start = "World,Book,Pencil,Door";

Теперь, когда я выбираю любое из выбранных значений: "World"Я хочу, чтобы результат был "Book,Pencil,Door",

// result = "Book,Pencil,Door";

1 ответ

Решение

Если вы спрашиваете, как удалить значение из строки, разделенной запятыми, попробуйте это...

var removeValue = function(list, value, separator) {
  separator = separator || ",";
  var values = list.split(separator);
  for(var i=0; i<values.length; i++) {
    if(values[i]===value) {
      values.splice(i, 1);
      return values.join(separator);
    }
  }
  return list;
}

Если искомое значение найдено, оно удаляется и возвращается новый список с разделителями-запятыми. Если он не найден, возвращается старый список.

Другая версия... используя indexOf

var removeValue = function(list, value, separator) {
  separator = separator || ",";
  var values = list.split(separator);
  var index = values.indexOf(value);
  if(index >= 0) {
    values.splice(index, 1);
    return values.join(separator);
  } else {
    return list;
  }
}

В принципе, с любой функцией вы отправляете список ("World,Book,Pencil,Door") в виде строки, значение для удаления ("World") как другая строка и что такое разделитель ("," для запятой... однако запятая также используется по умолчанию, поэтому ее можно отключить). Если значение для удаления не существует в списке, оно вернет список. Если он есть в списке, он будет удален.

Пример 1:

var final = removeValue("World,Book,Pencil,Door", "World");
// final = "Book,Pencil,Door"

Пример 2:

var final = removeValue("World,Book,Pencil,Door", "House");
// final = "World,Book,Pencil,Door"

Пример 3:

var final = removeValue("World|Book|Pencil|Door", "World", "|");
// final = "Book,Pencil,Door"

ОБНОВЛЕНИЕ:

jsFiddle: http://jsfiddle.net/rfornal/96awa2ht/

Другие вопросы по тегам