[英]Object delete and return property
JS中有什么快速方法可以刪除並返回對象屬性?
const objectA = { a: 1, b: 2 };
const b = object.doSomething("b");
const objectB = { b };
objectA is now { a: 1 }
objectB is { b: 2 }
我知道我可以分配該屬性然后將其刪除,但是我想知道JS中是否有任何方法可以在一個函數中執行此操作。
此操作沒有捷徑。 您需要手動執行; 這是一種方法:
function doSomething(source, ...keys) { var result = keys.reduce((r, k) => { r[k] = source[k]; delete source[k]; return r; }, {}); return result; } var obj1 = { a: 1, b: 2 }; var obj2 = doSomething(obj1, 'b'); console.log(obj1, obj2);
要回答您的問題:不,沒有單個函數可以完成所有這些工作。
但是您可以執行以下操作:
const objectB = {};
const k = 'b';
let t;
objectB[k] = t = objectA[k] && delete objectA[k] && t;
您可以將其包裝成這樣的函數:
function deleteReturn(object, key) {
let temp;
return (temp = object[key]) && delete object[key] && temp;
}
const b = deleteReturn(objectA, 'b');
const objectB = { b };
如果要使其更具可維護性,則應將單行代碼分成多個語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.