Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2018, 09:42
Интересующийся
Отправить личное сообщение для zhenia3003 Посмотреть профиль Найти все сообщения от zhenia3003
 
Регистрация: 06.02.2018
Сообщений: 10

Удалить из JSON массива
$('body').on('click','.fav',function(){
		var id = $(this).attr('id');
		favorities(id);
	});
function favorities(id){
	var cookie = $.cookie('good');
	if(cookie != null){
		var book = JSON.parse(cookie);
	}else{
		var book = [];
	}
	booktemp = { "id" : id };
	book.push(booktemp);
	fav = JSON.stringify(book);
	$.cookie('good', fav, { path: '/', expires: 1 });

Получаю следующее:
Код:
[{"id":"200"},{"id":"199"},{"id":"198"},{"id":"192"},{"id":"195"},{"id":"191"},{"id":"192"},{"id":"191"},{"id":"195"},{"id":"194"},{"id":"190"}]
Как удалить {"id":"198"} ?

Последний раз редактировалось zhenia3003, 06.02.2018 в 09:51.
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2018, 10:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если объекты имеют только одно свойство, то проще иметь один массив, а не массив объектов.
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2018, 10:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,252

Сообщение от zhenia3003
Как удалить {"id":"198"} ?
Как вариант...

var str='[{"id":"200"},{"id":"199"},{"id":"198"},{"id":"192"},{"id":"195"},{"id":"191"},{"id":"192"},{"id":"191"},{"id":"195"},{"id":"194"},{"id":"190"}]';
alert(str.replace(/{"id":"198"},/,''));
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2018, 10:17
Интересующийся
Отправить личное сообщение для zhenia3003 Посмотреть профиль Найти все сообщения от zhenia3003
 
Регистрация: 06.02.2018
Сообщений: 10

Спасибо за ответы, навели на мысль про один массив, удаляю через splice
var cookie = $.cookie('good');
	if(cookie != null){
		var book = JSON.parse(cookie);
	}else{
		var book = [];
	}
	if(book.indexOf(id) != '-1'){
		book.splice(book.indexOf(id), 1);
	}else{
		book.push(id);
	}
	fav = JSON.stringify(book);
	alert(fav);
	$.cookie('good', fav, { path: '/', expires: 1 });
Ответить с цитированием
  #5 (permalink)  
Старый 06.02.2018, 10:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

zhenia3003,
<script>
var data = [{"id":"200"},{"id":"199"},{"id":"198"},{"id":"192"},{"id":"195"},{"id":"191"},{"id":"192"},{"id":"191"},{"id":"195"},{"id":"194"},{"id":"190"}]
function deleteId(data, id)
{
   for (var i = data.length, el; el = data[--i];)   {
      if(el.id == id) data.splice(i,1)
   }
   return data
}

document.write(JSON.stringify(deleteId(data, 198)))
  </script>
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2018, 11:08
Интересующийся
Отправить личное сообщение для zhenia3003 Посмотреть профиль Найти все сообщения от zhenia3003
 
Регистрация: 06.02.2018
Сообщений: 10

Спасибо, интересный вариант, я пытался что-то подобное через each сделать, но почему-то не срабатывал push
Ответить с цитированием
  #7 (permalink)  
Старый 06.02.2018, 11:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от zhenia3003
пытался что-то подобное через each сделать
Тогда уж filter использовать

<script>var data = [{"id":"200"},{"id":"199"},{"id":"198"},{"id":"192"},{"id":"195"},{"id":"191"},{"id":"192"},{"id":"191"},{"id":"195"},{"id":"194"},{"id":"190"}]
data = data.filter(function(v) {
    return this != v.id
}, 198);
document.write(JSON.stringify(data))
</script>
Ответить с цитированием
  #8 (permalink)  
Старый 06.02.2018, 12:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Сообщение от laimas
Тогда уж filter
если id уникально
Ответить с цитированием
  #9 (permalink)  
Старый 06.02.2018, 12:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от рони
если id уникально
А как ID вообще может быть не уникальным?
Ответить с цитированием
  #10 (permalink)  
Старый 06.02.2018, 12:39
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от laimas Посмотреть сообщение
А как ID вообще может быть не уникальным?
а вот так

<div id="id1"></div>
<div id="id1"></div>
<div id="id1"></div>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод данных из массива JSON Vincent Vega jQuery 19 04.03.2016 13:44
Удалить данные с массива jeka123 Javascript под браузер 7 09.04.2014 16:42
Из одного массива удалить элементы другого... t3mir1an Events/DOM/Window 4 22.10.2013 11:14
Как достать данные из JSON массива? Dimaz jQuery 15 27.11.2012 21:58
как найти и удалить массив из массива? FRIE Общие вопросы Javascript 8 14.03.2011 15:48