我想用它的密鑰和將項目同時刪除。有沒有一種優雅的方式來實現這一目標?如何優雅地檢索和刪除javascript對象中的項目
不雅的解決方案
const popItem = (key) => {
const popped = items[key]
delete items[key]
return popped
}
我想用它的密鑰和將項目同時刪除。有沒有一種優雅的方式來實現這一目標?如何優雅地檢索和刪除javascript對象中的項目
不雅的解決方案
const popItem = (key) => {
const popped = items[key]
delete items[key]
return popped
}
這個怎麼樣?
const items = {1: 'one', 2: 'two'}
const popItem = (obj, key) => [obj[key], delete obj[key]][0];
console.log(popItem(items, 2)); // 'two'
console.log(items); // { 1: 'one; }
或者,如果你想從函數返回新的OBJ還有:
const items = {1: 'one', 2: 'two'}
const popItem = (obj, key) => [obj[key], [delete obj[key], obj][1]];
const [newObj, item] = popItem(items, 1);
console.log(newObj) // 'one'
console.log(item) // { 2: "two" }
一個優雅的解決方案。謝謝。 – biofractal
你爲什麼不盡量不發生變異呢?
const popItem = (obj, key) => {
{ [key], ...rest } = obj;
return { popped: key, newObj: rest };
};
然後你就可以這樣調用:
const { popped, newObj } = popItem(obj, key);
看一看這個討論。我認爲你需要保持不雅觀http://stackoverflow.com/questions/208105/how-to-remove-a-property-from-a-javascript-object – mplungjan