Если вы спрашиваете, как удалить значение из строки, разделенные запятыми, попробуйте это ...
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"
UPDATE:
jsFiddle: http://jsfiddle.net/rfornal/96awa2ht/
Вы спрашиваете, как сделать массив строк и возвращает массив с 1 меньшим количеством элементов в нем? Вы можете уточнить свой вопрос? – wmock
Пожалуйста, поделитесь уже имеющимся кодом и покажите, что не работает. Мы с радостью поможем вам решить эту проблему. Возможно ответы, связанные с вашим вопросом: http://stackoverflow.com/questions/7142890/javascript-remove-an-array-element-by-value – Bjorn