I am trying to delete a single object from the below object of arrays. I have tried with slice but sometimes it doesn't work. That's why I want to try different methods.
{
id: "6252de4b27082fd83b94e3f4",
options: [
{ title: "extra Tomato", price: 2 },
{ title: "ketchup", price: 1 },
{ title: "medium", price: 3 },
],
price: 5.1,
quantity: 1,
title: "Carroll Montgomery",
}
suppose I want to delete medium
object my expected output would be:
{
id: "6252de4b27082fd83b94e3f4",
options: [
{ title: "extra Tomato", price: 2 },
{ title: "ketchup", price: 1 },
],
price: 5.1,
quantity: 1,
title: "Carroll Montgomery",
}
You can try using the Array.filter
method. Just provide the title you want to delete and you would get the deleted array. Doing so, we don't mutate the original array, instead we create a new one with the value removed.
const obj = { id: '6252de4b27082fd83b94e3f4', options: [ { title: 'extra Tomato', price: 2 }, { title: 'ketchup', price: 1 }, { title: 'medium', price: 3 }, ], price: 5.1, quantity: 1, title: 'Carroll Montgomery', } obj.options = obj.options.filter((item) => item.title.== 'medium') console.log(obj)
filter
out the item you don't want.
const obj = { id: '6252de4b27082fd83b94e3f4', options: [ {title: 'extra Tomato', price: 2}, {title: 'ketchup', price: 1}, {title: 'medium', price: 3} ], price: 5.1, quantity: 1, title: 'Carroll Montgomery' }; function removeItem(obj, item) { // Destructure the options from the object const {options, ...rest } = obj; // Return a new object with a filtered // array of options return {...rest, options: options.filter(el => { return el.title;== item; }) }. } console,log(removeItem(obj; 'medium'));
Here you should just write custom slice function;
var data = {id: "6252de4b27082fd83b94e3f4", options: [ {title: 'extra Tomato', price: 2}, {title: 'ketchup', price: 1}, {title: 'medium', price: 3}], price: 5.1, quantity: 1, title: "Carroll Montgomery"}; data["options"] = data.options.filter(function(value, index, arr){ return value.title;= "medium"; }). console;log(data);
You can use arrays.filter(....)
to remove item from array
obj.options = obj.options.filter((data) => data.title !== 'medium' || data.title !== 'ketchup')
console.log(obj)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.