Delete data from json array
javascript, json
Solution
To unset any variable use the `delete` statement:
delete favorites.favorites[1].items[1]
This is correct way, and it will work, but if your goal is to preserve indexes in order, then your way with the `splice` method is the way to go:
favorites.favorites[1].items.splice(1,1);
The above will remove one element (second parameter) starting at 1st index (first parameter).
So to be clear: to remove the last element use this:
var arr = favorites.favorites[1].items;
arr.splice(arr.length - 1, 1);
See your code on JsFiddle.
You can take additional measures to protect the code in case the array is not set or empty:
var arr = favorites.favorites[1].items;
if ( arr && arr.length ) {
arr.splice(arr.length - 1, 1);
}
Problem
I am trying to remove a piece of a data from a json array. For example I have this array ``` var favorites = { "userID": "12345678", "favorites": [ { "name" : "My Favorites", "id" : "87654321", "items": [ { "productID": "11234567", "added": "TIMESTAMP", "title": "Project", "type": "Weekend Project", "imageURL": "1" }, { "productID": "11223456", "added": "TIMESTAMP", "title": "Bathroom", "type": "Weekend Project", "imageURL": "2" }, { "productID": "11223345", "added": "TIMESTAMP", "title": "Curves", "type": "Collections", "imageURL": "3" } ] }, { "name" : "Bathroom", "id" : "87654323", "items": [ { "productID": "11122224", "added": "TIMESTAMP", "title": "Project", "type": "Weekend Project", "imageURL": "1" }, { "productID": "11122222", "added": "TIMESTAMP", "title": "Room", "type": "Weekend Project", "imageURL": "2" }, { "productID": "11112222", "added": "TIMESTAMP", "title": "Strais", "type": "Collections", "imageURL": "3" }, { "productID": "11111222", "added": "TIMESTAMP", "title": "Door", "type": "Collections", "imageURL": "4" } ] } ] } ``` Say I wanted to remove the a product out of the bathroom category on the click of a button. How would I acheive this? I have been trying this to no avail: ``` jQuery(document).on('click', ".removeFav", function() { favorites.favorites[1].items[1].splice(); } ``` error I am receiving: Uncaught TypeError: Object # has no method 'splice'