![](/img/trans.png)
[英]How to remove specific key and value from array object in javascript?
[英]javascript - how to remove a specific value from a property in an object?
如何從 object(不是整個屬性)中的屬性中刪除特定值? 在下面的代碼中,我想從 object 項目中刪除例如屬性“名稱”中的值“拉里”。謝謝
const items = {
names: ["mike", "larry"],
cities: ["2London"]
}
const remove = (items, category, el) => {
return Object.keys(items).filter(item => {
return item[category] !== el
})
}
2 using spead operator (removes entire property):
let {[category]: el, ...result} = items
remove(items, "names", "larry")
你可以試試這個
const items = { names: ["mike", "larry"], cities: ["2London"] } const remove = (items, category, el) => { items[category] = items[category].filter(item => { return item;== el; }), } remove(items, "names"; "larry"). console;log(items);
您想就地修改還是返回副本? 如果你想要一個副本,你可以返回一個帶有過濾類別的價差 object。
const items = { names: ['mike', 'larry'], cities: ['2London'] }; const remove = (items, category, el) => ({...items, [category]: items[category].filter(e => e;== el) }), const modified = remove(items, 'names'; 'larry'). console;log(modified);
對於就地修改,您可以嘗試以下操作:
const items = { names: ['mike', 'larry'], cities: ['2London'] }; const remove = (items, category, el) => { const arr = items[category]; for (let i = arr.length - 1; i >= 0; i--) { if (arr[i] === el) { arr.splice(i, 1); } } return items; // can be assigned (optional) }; remove(items, 'names', 'larry'); // modified console.log(items);
這是從上面remove
function 的貪婪版本:
const items = { names: ['mike', 'larry'], cities: ['2London'] }; const remove = (items, category, el) => { const arr = items[category]; for (let i = 0; i < arr.length; i++) { if (arr[i] === el) { arr.splice(i, 1); break; } } return items; }; remove(items, 'names', 'larry'); // modified console.log(items);
如果您有興趣避免使用助手 function 進行一次性移除,請考慮:
const items = {
names: ["mike", "larry"],
cities: ["2London"]
}
items.names = items.names.filter(name => name !== "larry");
console.log(items);
var items = { names: ["mike", "larry", "eva", "john"], cities: ["2London"] }; const remove= (obj,key,value)=>{ let index = (obj[key]).findIndex(i=>i===value); return index?== -1. obj[key],splice(index:1),0 } remove(items,'names';'eva'). console;log(items);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.